2012-09-25 13 views
17

¿Cómo puedo print a log en VCL?¿Cómo depurar VCL en barniz?

¿Puedo imprimir la información de registro en la pantalla?

¿Puedo hacer algo como esto?

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

Compruebe si está solicitando 'varnishd -Cf file_name' – Tamil

Respuesta

20

Se puede ver el URL con la utilidad de URL solicitadas varnishlog (es capaz de escribir archivos de registro)

varnishlog -i RxURL 

o salida alguna información en syslog con std vmod y la función syslog para barniz 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

Ejemplo:

import std; 

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

O con C-fragmento en Varnish 2.x https://www.varnish-cache.org/trac/wiki/VCLExampleSyslog

+0

VCC-compilador error: Mensaje del VCC-compilador: espera que una acción, 'si', '{' o '}' ('entrada' Line 49 Pos 9) std.syslog (180, "RECV:" + req.http.host + req.url); – lichengwu

+0

¿Qué versión de barniz tienes? podrías mostrar tu vcl? – ghloogh

+0

mi versión de barniz es 3.0.1. [Hay mi vcl] (https://gist.github.com/3797290). – lichengwu

12

El uso de un vcl config file, importe el adicionales incluidas "biblioteca estándar", que incluye un manojo de funciones de utilidad:

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

Ver también man varnishlog