不能生产带日期的日志文件?
conf配置如下:
my_cat.* "%E(HOME)/log/tsMMM.%d(%Y%y%m%d).log" , 1K * 0 ~ "%E(HOME)/log/tsMM.%d(%Y%m%d).#2r.log";
my_cat.=DEBUG >stdout;
my_cat.=INFO "%E(HOME)/log/ts_%v_%d(%Y%m%d).log" , 1K * 0 ~ "%E(HOME)/log/ts_%v_%d(%Y%m%d).#2r.log";
my_cat.=ERROR "%E(HOME)/log/ts_%v_%d(%Y%m%d).log" , 512MB * 0 ~ "%E(HOME)/log/ts_%v_%d(%Y%m%d).#2r.log";
my_cat.=FATAL "%E(HOME)/log/ts_%v_%d(%Y%m%d).log" , 512MB * 0 ~ "%E(HOME)/log/ts_%v_%d(%Y%m%d).#2r.log";
程序代码:
#include <stdio.h>
#include "zlog.h"
#define ZLOG_CONFIG_FILE "../etc/zlog.conf"
int main(int argc, char** argv)
{
int rc;
zlog_category_t *c;
printf("[%d]%sn", getpid(), ZLOG_CONFIG_FILE);
rc = zlog_init(ZLOG_CONFIG_FILE);
if (rc) {
printf("init failedn");
return -1;
}
c = zlog_get_category("my_cat");
if (!c) {
printf("get cat failn");
zlog_fini();
return -2;
}
zlog_debug(c, "debug,hello, zlog");
zlog_info(c, "info,hello, zlog");
zlog_error(c, "error,hello, zlog");
zlog_fatal(c, "fatal,hello, zlog");
zlog_fini();
return 0;
}
~
问题是:
如果我屏蔽my_cat.* 执行时产生的日志文件不带日期,如ts_error_.log,日期被无视了。
但是我把my_cat.* 打开产生的日志文件就带日期如:ts_error_20120928.log
请帮主解释一下,这是什么问题?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
问题已经找到,是上一次的bug修复我没有想清楚,所以再次修复了一下。发布1.2.3版。
详见https://github.com/HardySimpson/zlog/issues/7
原因在于strftime很慢,我想缓存结果,但是缓存需要判断,所以要写一个正确的判断
好啊,这就是开源的好处,每个人都能改一些自己喜欢的部分
嘿嘿,我把您的程序稍微修改了一下,hex输出格式如下:
已经重现了这个问题,我查查。。