squid配置文件中可以根据用户的需求自定义日志格式,自定义日志格式主要是通过占位符实现的。以下简要叙述下一些
占位符的含义:
%>a客户端IP
%>A 客户端全域名(FQDN)
%>p 客户端端口号
%lp 本机IP(squid服务器IP)
%lp 本机端口(squid监听端口)
%oa 对外IP
%ts 时间戳(秒)
%tu 时间戳(毫秒)
%tl 本地时间,默认格式 %d/%b/%Y:%H:%M:%S %z
%tg GMT时间,默认格式 %d/%b/%Y:%H:%M:%S %z
%tr 响应时间(毫秒)
%>h 请求头
%<h 回复头
%un user name
%ui user ident
%ul user auth
%us user ssl
%ue user external
%Hs http状态码(200 ,302 etc)
%Ss squid状态码(TCP_HIT,TCP_MISS etc)
%Sh squid堆叠状态码(即cache集群,姐妹或父状态,DEFAULT_PARENT etc)
%mt content type
%rm method
%ru 请求url
%rp 请求url路径不包括主机名
%rv 请求协议版本
%<st 回复大小包括http头
%>st 请求大小包括http头
%st 请求+回复大小包括http头
%sn 日志每行记录一个行号
如果打印请求头或回复头中的某个字段,可以这样:%{字段名}>h %{字段名}<h
如: %{User-agent}>h表示打印请求头中的ua字段
这样我们可以自定义几种日志格式:
logformat log1 %ts.%03tu %6tr %>a %Ss/%03Hs %<st %rm %ru %un %Sh/%<A %mt
logformat log2 %>a %ui %un [%tl] "%rm %ru HTTP/%rv" %Hs %<st "%{Referer}>h" "%{User-Agent}>h" %Ss:%Sh
然后在access_log配置用上这几种自定义格式
access_log /usr/local/squid/var/logs/log1/access.log log1
access_log /usr/local/squid/var/logs/log2/access.log log2
这样就会同时记录两种不同的日志格式了。