web-dev-qa-db-ja.com

ワニスでVCLをデバッグする方法は?

どうやって print a log VCLで?

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

これは好きですか?

sub vcl_recv {
  ....
  log.info(req.http.Host); // can i write a log here?
  ....
}
19
lichengwu

リクエストされたURLのvarnishlogユーティリティでURLを確認できます(ログファイルを書き込むことができます)

varnishlog -i RxURL

または、vmod stdおよびsyslog関数を使用して、syslogに情報を出力します Varnish 3.x https://www.varnish-cache.org/docs/trunk/reference/vmod_std.html#syslog Varnish 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);
  ...
}

またはVarnish 2.xのCスニペット https://www.varnish-cache.org/trac/wiki/VCLExampleSyslog

22
ghloogh

vcl config file を使用して、ユーティリティ関数の束を含む追加の「標準ライブラリ」をインポートします。

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

v3.x 非推奨)---(https://www.varnish-cache.org/docs/3.0/reference/vmod_std.html#log

man varnishlogもご覧ください

13
here