Подтвердить что ты не робот

Как отладить VCL в лаке?

Как я могу print a log в VCL?

Можно ли распечатать информацию о журнале на экране?

Могу ли я сделать это?

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

Ответ 1

Вы можете увидеть URL с запрошенными URL-адресами утилиты varnishlog (он может записывать файлы журналов)

varnishlog -i RxURL

Или вывести некоторую информацию в syslog с помощью функции vmod std и 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);
  ...
}

Или с C-фрагментом на Varnish 2.x https://www.varnish-cache.org/trac/wiki/VCLExampleSyslog

Ответ 2

Используя файл конфигурации vcl, импортируйте дополнительную включенную "стандартную библиотеку", которая включает в себя кучу полезных функций:

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