2012-09-25 18 views
17

Jak mogę print a log w VCL?Jak debugować VCL w lakierze?

Czy mogę wydrukować informacje dziennika na ekranie?

Czy mogę to zrobić?

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

Sprawdź, czy jesteś z prośbą o 'varnishd CF file_name' – Tamil

Odpowiedz

20

Można zobaczyć URL z narzędzia żądanych adresów URL varnishlog (jest możliwość zapisu plików dziennika)

varnishlog -i RxURL 

lub wyjście pewne informacje do syslog z vmod std i funkcji syslog dla Varnish 3.x https://www.varnish-cache.org/docs/trunk/reference/vmod_std.html#syslog lakier 5,1 https://varnish-cache.org/docs/5.1/reference/vmod_std.generated.html#func-syslog

przykład:

import std; 

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

albo z C na fragmencie lakieru 2.x https://www.varnish-cache.org/trac/wiki/VCLExampleSyslog

+0

VCC-kompilator nie powiodło się: Wiadomość z VCC-kompilatora: Oczekiwane działania, 'jeśli', '{' i '}' ('input' Wiersz 49 Pos 9) std.sys (180, "RECV:" + req.http.host + req.url); – lichengwu

+0

jaka masz wersję lakieru? czy mógłbyś pokazać swój vcl? – ghloogh

+0

moja wersja lakiernicza to 3.0.1. [Nie ma mojego vcl] (https://gist.github.com/3797290). – lichengwu

12

Używanie vcl config file, import dodatkowa zawiera "standard biblioteki", który zawiera kilka funkcji użytkowych:

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 - (wycofane) https://www.varnish-cache.org/docs/3.0/reference/vmod_std.html#log

Zobacz także man varnishlog