用于标准输出的数据重定向到文件,并定期归档
工作原理是:通过配合管道重定向来的数据流输出到跟当前时间相关指定格式的文件名中,从而做到定期归档的目的。另外,可以配置创建软链到当前时间对应的文件,这样用户看当前文件就很方便了。
{commad} | /usr/local/bin/cronolog --link /home1/hadoop/xxxx/log/xxx.log /home1/hadoop/xxxx/log/archive/%Y-%m/%d/xxxx.log
这个工具充分体现了linux的理念,直观,专注,一目了然,一句话可以描述等略过几十个赞美词。
另外,网上有针对apache文件重定向的的配置,没试过,放在当参考,只是如何实现支持这个格式的?(直接文件IO肯定不行,另外解析启动进程接收?)
1、虚拟主机配置文件 httpd-vhosts.conf
将Web日志设置 CustomLog 修改为以下格式
CustomLog "|/usr/local/sbin/cronolog /www/logs/example_%Y%m%d.log" combined
当然,错误日志设置 ErrorLog 也可以利用 cronolog 分割,设置为
ErrorLog "|/usr/local/sbin/cronolog /www/logs/error_%Y%m%d.log"
检查的httpd的代码,的确是解析用新的进程去执行的
if (*name == '|') {
piped_log *pl;
pl = ap_open_piped_log(p, name + 1);
if (pl == NULL) {
return NULL;
}
return ap_piped_log_write_fd(pl);
}