How to debug VCL in varnish?

前端 未结 2 1029
暗喜
暗喜 2020-12-28 16:30

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         


        
相关标签:
2条回答
  • 2020-12-28 17:10

    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

    0 讨论(0)
  • 2020-12-28 17:17

    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

    0 讨论(0)
提交回复
热议问题