在C++中使用Apache的Log4cxx记录日志
1.介绍Log4cxx是开放源代码项目Apache Logging Service的子项目之一,是Java社区著名的log4j的c++移植版,用于为C++程序提供日志功能,以便开发者对目标程序进行调试和审计。有关log4cxx的更多信息可以从Apache Logging Service的网站http://logging.apache.org获得。当前的稳定版本为0.9.7,本文内容及示例代
// log4cppTest.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <string>
#include <log4cxx/logger.h>
#include <log4cxx/propertyconfigurator.h>
#include <log4cxx/helpers/exception.h>
using namespace log4cxx;
using namespace log4cxx::helpers;
int main(int argc, char* argv[])
{
String msg = _T("e://log4cppTest//log4cxx.properties");
LoggerPtr rootLogger = Logger::getRootLogger();
log4cxx::PropertyConfigurator::configure(msg);
rootLogger->info(_T("Entering application."));
//LOG4CXX_INFO(rootLogger, _T("他的确工作了"));
return 0;
}
[/code]
新建一个文本文件,命名为log4cxx.properties,并键入如下内容:
[code]
log4j.rootLogger=DEBUG, ca, fa
#对Appender fa进行设置:
# 这是一个文件类型的Appender,
# 其输出文件(File)为./output.log,
# 输出方式(Append)为覆盖方式,
# 输出格式(layout)为PatternLayout
log4j.appender.fa=org.apache.log4j.FileAppender
log4j.appender.fa.File=./output.log
log4j.appender.fa.Append=true
log4j.appender.fa.layout=org.apache.log4j.PatternLayout
log4j.appender.fa.layout.ConversionPattern=%d [%t] %-5p %.16c - %m%n
#对Appender ca进行设置:
# 这是一个控制台类型的Appender
# 输出格式(layout)为PatternLayout
log4j.appender.ca=org.apache.log4j.ConsoleAppender
log4j.appender.ca.layout=org.apache.log4j.PatternLayout
log4j.appender.ca.layout.ConversionPattern=%d [%t] %-5p %.16c - %m%n
[/code]
复制log4cxx.dll到输出目录。在动态链接方式下,应用程序需要能够找到这个库文件。
运行生成的文件,查看一下运行结果.
注:log4cxx在代码中含有一个漏洞,如果使用LOG4CXX.INFO(*)会造成内存溢出,但使用rootlogger->info(*)没有这个问题.
相关内容可以搜索关键字为"在C++中使用Apache Log4cxx日志服务"的文章.
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)