不能生产带日期的日志文件?

jackzhxy 发布于 2012/09/28 17:01
阅读 508
收藏 1

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]%s\n", getpid(), ZLOG_CONFIG_FILE);

        rc = zlog_init(ZLOG_CONFIG_FILE);
        if (rc) {
                printf("init failed\n");
                return -1;
        }

        c = zlog_get_category("my_cat");
        if (!c) {
                printf("get cat fail\n");
                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

请帮主解释一下,这是什么问题?

加载中
0
难易
难易
已经重现了这个问题,我查查。。
0
j
jackzhxy

嘿嘿,我把您的程序稍微修改了一下,hex输出格式如下:

难易
难易
好啊,这就是开源的好处,每个人都能改一些自己喜欢的部分
0
难易
难易

问题已经找到,是上一次的bug修复我没有想清楚,所以再次修复了一下。发布1.2.3版。

详见https://github.com/HardySimpson/zlog/issues/7

原因在于strftime很慢,我想缓存结果,但是缓存需要判断,所以要写一个正确的判断

 

返回顶部
顶部