2012-09-25 12 views
17

मैं वीसीएल में print a log कैसे कर सकता हूं?वार्निश में वीसीएल डीबग कैसे करें?

क्या मैं स्क्रीन पर लॉग जानकारी प्रिंट कर सकता हूं?

क्या मैं ऐसा कर सकता हूं?

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

चेक, अगर आप 'varnishd -Cf के लिए पूछ रहे हैं file_name' – Tamil

उत्तर

20

आप अनुरोधित URL varnishlog उपयोगिता के साथ URL देख सकते हैं वार्निश 3.x https://www.varnish-cache.org/docs/trunk/reference/vmod_std.html#syslog के लिए vmod एसटीडी और syslog समारोह के साथ तंत्र लॉग को

varnishlog -i RxURL 

या उत्पादन कुछ जानकारी (यह सक्षम लॉग फ़ाइलें लिखने के लिए) वार्निश 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); 
    ... 
} 
,210

या वार्निश 2.x https://www.varnish-cache.org/trac/wiki/VCLExampleSyslog

+0

VCC-संकलक विफल रहा: VCC-संकलक से संदेश: एक कार्रवाई अपेक्षित हैं, 'अगर', '{' या '}' ('इनपुट' लाइन 49 पॉस 9) std.syslog (180, "आरईसीवी:" + req.http.host + req.url); – lichengwu

+0

आपके पास वार्निश संस्करण क्या है? क्या आप अपना वीसीएल दिखा सकते हैं? – ghloogh

+0

मेरा वार्निश संस्करण 3.0.1 है। [मेरा वीसीएल है] (https://gist.github.com/3797290)। – lichengwu

12

एक vcl config file का उपयोग पर सी-स्निपेट के साथ, आयात अतिरिक्त शामिल "मानक पुस्तकालय" है, जो उपयोगिता कार्यों का एक समूह में शामिल हैं:

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