修改records.config,开启日志自定义功能
更改日志目录,默认日志存放在/var/log/trafficserver:
CONFIG proxy.config.log.logfile_dir STRING /var/log/trafficserver
更改默认日志的输出格式,按照ASCII码输出日志
CONFIG proxy.config.log.squid_log_is_ascii INT 1 关闭squid格式的日志输出
CONFIG proxy.config.log.squid_log_enabled INT 0
修改records.config,开启日志自定义功能 CONFIG proxy.config.log.custom_logs_enabled INT 1
修改logs_xml.config
<LogFormat>
<Name = “access”/>
<Format = “%<chi> %<cqtq> %<ttms> %<{X-Forwarded-For}cqh> %<crc>/%<pssc> %<pscl> %<cqhm> %<cquuc> %<cqhv> %<phr>/%<pqsi> %<psct> \”%<{Referer}cqh>\” \”%<{User-Agent}cqh>\” %<shn> %<sscl>”/>
</LogFormat>
<LogObject>
<Format = “access”/>
<Filename = “access”/>
</LogObject>
输出结果:
10.0.5.153 1543562823.049 0 – TCP_MEM_HIT/200 28 GET http://www.a.com/1.txt HTTP/1.0 NONE/0 text/plain “-” “Wget/1.12 (linux-gnu)” www.a.com 0
日志轮询
使用traffic server内部的轮询机制来处理,线上的配置如下:
CONFIG proxy.config.log.logging_enabled INT 3 CONFIG proxy.config.log.max_secs_per_buffer INT 5 CONFIG proxy.config.log.max_space_mb_for_logs INT 60000 CONFIG proxy.config.log.max_space_mb_for_orphan_logs INT 25 CONFIG proxy.config.log.max_space_mb_headroom INT 5000 CONFIG proxy.config.log.rolling_enabled INT 3 CONFIG proxy.config.log.rolling_interval_sec INT 86400 CONFIG proxy.config.log.rolling_offset_hr INT 0 CONFIG proxy.config.log.rolling_size_mb INT 1024 CONFIG proxy.config.log.auto_delete_rolled_files INT 1
这里简单的解释下logs_xml.config这个文件的组成,主要由LogFormats/LogFilters/LogObject定义块组成,每一块的含义如下:
LogFormat : object defines the content of the log file using printf-style format strings (看到 printf-style,就猜的出来,说的是按照一种什么风格输出日志,例如日志字段间的分隔用的是逗号分隔还是空格分隔了)
LogFilter :object defines a filter so that you include or exclude certain information from the log file (看到Filter也知道,这个部分是做过滤的,确定最后要输出什么样的信息到日志,例如可以只输出某一个域名的日志或者只输出状态码等于200的日志等等)
LogObject :object specifies all the information needed to produce a log file (这是一个总的定义块,相当于c语言最后的main函数,例如你要自定义输出一个日志,首先要定义一个LogObject,然后里面再包括LogFormat/LogFilter等其他部分;LogObject里,至少要包括Format(决定日志如何输出)和Filename(日志输出到哪)这两个部分。)