log4c-在程序中设定日志文件名
来源:互联网 发布:linux 不支持ext4 编辑:程序博客网 时间:2024/04/30 09:02
使用过log4c的人都知道,log4c的需要参数是通过logcrc配置文件设定的。例如:
<category name="log4c.examples.helloworld" priority="trace" appender="tiananmen"/>
<appender name="tiananmen" type="rollingfile" layout="logtest" logdir="log" prefix="logtest"rollingpolicy="testrollingpolicy"/>
<layout name="logtest" type="dated"/>
<rollingpolicy name="testrollingpolicy" type="sizewin" maxsize="1024" maxnum="1" />
红色字的设定的日志文件的名称。如果日志文件名字在程序就不能改变了。
我想要通过程序改变日志文件的名字。在网上查了一下,写的都比较基础。外文的资料也懒得去看。看了log4c的例子里也没有介绍。
所以自己研究了一下源码。实现了
int main(int argc, char** argv){
int rc = 0;
log4c_category_t* mycat = NULL;
log4c_appender_t* my_appender = NULL;
if (log4c_init()){
printf("log4c_init() failed");
rc = 1;
}else{
log4c_appender_t* app = NULL;
app = log4c_appender_get("tiananmen");
rollingfile_udata_t *rfup = NULL;
rfup = rollingfile_make_udata();
rollingfile_udata_set_logdir(rfup, ".");
rollingfile_udata_set_files_prefix(rfup, "NIHAO.LOG");
log4c_rollingpolicy_t * rollingpolicyp = log4c_rollingpolicy_get("testrollingpolicy");
rollingfile_udata_set_policy(rfup, rollingpolicyp);
log4c_appender_set_udata(app, rfup);
log4c_rollingpolicy_init(rollingpolicyp, rfup);
mycat = log4c_category_get("log4c.examples.helloworld");
log4c_category_log(mycat, LOG4C_PRIORITY_ERROR, "Hello World! = %s\n", "sajfkljsdklfj");
log4c_category_log(mycat, LOG4C_PRIORITY_DEBUG, "HELLO DEBUG %d in file %s", __LINE__, __FILE__);
log4c_category_log(mycat, LOG4C_PRIORITY_WARN, "HELLO DEBUG %d in file %s", __LINE__, __FILE__);
log4c_category_log(mycat, LOG4C_PRIORITY_INFO, "HELLO DEBUG %d in file %s", __LINE__, __FILE__);
log4c_category_log(mycat, LOG4C_PRIORITY_TRACE, "HELLO DEBUG %d in file %s", __LINE__, __FILE__);
/* Explicitly call the log4c cleanup routine */
if ( log4c_fini()){
printf("log4c_fini() failed");
}
}
return 0;
}
- log4c-在程序中设定日志文件名
- log4c-在程序中设定日志文件名
- log4c日志库在Linux中的使用
- -----log4c日志库在Linux中的使用 -------------
- log4c日志库在Linux中的使用
- log4c-embed日志
- log4j在程序中指定输出日志文件名
- 开源日志库log4c存在的一个bug,程序重启后,每次都重新写新的文件,不是接在在原来的文件中写;
- 程序日志中自动记录所在函数名、文件名、行号,并定向输出到一个日志文件
- Log4C++
- 使用Log4j在程序中加入日志
- 使用Log4j在程序中加入日志
- 怎样在程序中打日志?
- log4c中有%造成crash?
- 关于在程序中设定combobox的下拉菜单宽度[delphi]
- 在路径中截取文件名
- 在路径中截取文件名
- 程序中设定主显示器问题
- C#操作XML简明教程
- Linux系统巡检常用命令
- C++类的存储空间学习总结
- 在win7下制作MAC启动u盘
- 利用栈的操作实现二进制转十进制
- log4c-在程序中设定日志文件名
- ListView Item点击事件失效
- 数字图像处理 边缘特征提取 Image edge detection
- 汇编语言----实验16--编写包含多个功能子程序的中断例程
- 把二元查找树转变成排序的双向链表
- iOS 开发库(iOS Developer Library)
- 【微软100题】输入一颗二元查找树,将该树转换为它的镜像
- C++ Primer读书笔记1--基本语言
- 用STL设计消息队列、优先级消息队列、资源分配管理器