How can I print a log
in VCL?
Can I print log info on screen?
Can I do like this?
sub vcl_recv {
....
log.info(req.http.host
Using a vcl config file, import the additional included "standard library", which includes a bunch of utility functions:
import std;
# To 'varnishlog'
std.log("varnish log info:" + req.host);
# To syslog
std.syslog( LOG_USER|LOG_ALERT, "There is serious trouble");
v6.x - https://varnish-cache.org/docs/6.0/reference/vmod_generated.html#void-log-string-s
v5.x - https://varnish-cache.org/docs/5.0/reference/vmod_std.generated.html?#func-log
v4.x - https://varnish-cache.org/docs/4.0/reference/vmod_std.generated.html?#func-log
v3.x - https://varnish-cache.org/docs/3.0/reference/vmod_std.html#log
See also man varnishlog
You can see URL with requested URLs varnishlog utility (it able to write log files)
varnishlog -i RxURL
Or output some info to syslog with vmod std and syslog function for 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
Example:
import std;
sub vcl_recv {
...
std.syslog(180, "RECV: " + req.http.host + req.url);
...
}
Or with C-snippet on Varnish 2.x https://www.varnish-cache.org/trac/wiki/VCLExampleSyslog