2012-09-25 26 views
17

Làm thế nào tôi có thể print a log trong VCL?Làm thế nào để gỡ lỗi VCL trong véc ni?

Tôi có thể in thông tin nhật ký trên màn hình không?

Tôi có thể làm như thế này không?

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

Kiểm tra xem bạn đang yêu cầu cho 'varnishd -Cf file_name' – Tamil

Trả lời

20

Bạn có thể thấy URL với URL được yêu cầu tiện ích varnishlog (nó có thể ghi tập tin log)

varnishlog -i RxURL 

Hoặc sản lượng một số thông tin để syslog với std vmod và chức năng syslog cho 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

Ví dụ:

import std; 

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

Hoặc với C-đoạn trên Varnish 2.x https://www.varnish-cache.org/trac/wiki/VCLExampleSyslog

+0

VCC-biên dịch thất bại: Thông điệp từ VCC-biên dịch: Dự kiến ​​một hành động, 'nếu', '{' hoặc '}' ('đầu vào' Dòng 49 Pos 9) std.syslog (180, "RECV:" + req.http.host + req.url); – lichengwu

+0

bạn có phiên bản Varnish nào? bạn có thể hiển thị vcl của bạn không? – ghloogh

+0

Phiên bản véc ni của tôi là 3.0.1. [Có vcl của tôi] (https://gist.github.com/3797290). – lichengwu

12

Sử dụng một vcl config file, nhập thêm bao gồm "thư viện tiêu chuẩn", trong đó bao gồm một loạt các chức năng tiện ích:

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 - (phản đối) https://www.varnish-cache.org/docs/3.0/reference/vmod_std.html#log

cũng Xem man varnishlog

Các vấn đề liên quan