2012-09-25 4 views
17

VCLでどうすればprint a logできますか?ワニスでVCLをデバッグする方法は?

画面にログ情報を印刷できますか?

私はこれを行うことはできますか?

sub vcl_recv { 
    .... 
    log.info(req.http.host); // can i write a log here? 
    .... 
} 
+1

チェックあなたは 'varnishd -Cf file_name'ため – Tamil

答えて

20

あなたは

varnishlog -i RxURL 

または出力ニス3.xのhttps://www.varnish-cache.org/docs/trunk/reference/vmod_std.html#syslogためVMOD STDとsyslog機能をsyslogにいくつかの情報(ログファイルを記述することができる)要求されたURL varnishlogユーティリティを使用してURLを見ることができますニス5.1 https://varnish-cache.org/docs/5.1/reference/vmod_std.generated.html#func-syslog

例:

import std; 

sub vcl_recv { 
    ... 
    std.syslog(180, "RECV: " + req.http.host + req.url); 
    ... 
} 
追加

またはvcl config fileを用いワニス2.xのhttps://www.varnish-cache.org/trac/wiki/VCLExampleSyslog

+0

VCC-コンパイラは失敗を求めている場合:VCC-コンパイラからのメッセージ: は、アクション、 'もし'、 '{' または '}' が予想 ( 'input' Line 49 Pos 9) std.syslog(180、 "RECV:" + req.http.host + req.url); – lichengwu

+0

どのようなワニスバージョンがありますか?あなたのvclを表示できますか? – ghloogh

+0

私のワニスのバージョンは3.0.1です。 [私のvclがある](https://gist.github.com/3797290)。 – lichengwu

12

上のC-スニペットと、インポートは、効用関数の束を含む "標準ライブラリ"、含ま:

import std; 

# To 'varnishlog' 
std.log("varnish log info:" + req.host); 

# To syslog 
std.syslog(LOG_USER|LOG_ALERT, "There is serious troble"); 

V5.xのを - https://www.varnish-cache.org/docs/5.0/reference/vmod_std.generated.html?#func-log

v4.xは - https://www.varnish-cache.org/docs/4.0/reference/vmod_std.generated.html?#func-log

バージョン3.x - (廃止)https://www.varnish-cache.org/docs/3.0/reference/vmod_std.html#log

も参照してくださいman varnishlog