log4cpp 用法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了log4cpp 用法相关的知识,希望对你有一定的参考价值。
1 windows环境
1.1创建一个日志模板
staticbool bFirst = true;
Logger_logger = Logger::getInstance(LOG4CPLUS_TEXT("thriftserver"));
if(bFirst)
{
SharedAppenderPtr_append(new RollingFileAppender(LOG4CPLUS_TEXT("thriftserver.log"),300 * 1024, 20));
auto_ptr<Layout>pPatternLayout(new PatternLayout("%D- %m [%l]%n"));
_append->setLayout(pPatternLayout);
_append->setName(LOG4CPLUS_TEXT("thriftserver"));
_logger.addAppender(_append);
bFirst= false;
}
return _logger;
1.2 日志携带时间戳
auto_ptr<Layout> pPatternLayout(newPatternLayout("%d- %m [%l]%n"));
显示的是格林威治的时间
auto_ptr<Layout> pPatternLayout(newPatternLayout("%D- %m [%l]%n"));
显示的是本地的时间
1.3 使用例子
#include <log4cplus/loggingmacros.h>
#include <log4cplus/logger.h>
#include <log4cplus/fileappender.h>
#define LOGGERTAGLogger::getInstance(LOG4CPLUS_TEXT("thriftserver"))
log4cplus::LoggerStartSetupThrfitServerLog();
//在程序运行的时候创建日志文件,调用该函数
log4cplus::Logger StartSetupThrfitServerLog()
{
staticbool bFirst = true;
Logger_logger = Logger::getInstance(LOG4CPLUS_TEXT("thriftserver"));
if(bFirst)
{
SharedAppenderPtr_append(new RollingFileAppender(LOG4CPLUS_TEXT("thriftserver.log"),300 * 1024, 20));
auto_ptr<Layout>pPatternLayout(new PatternLayout("%D- %m [%l]%n"));
_append->setLayout(pPatternLayout);
_append->setName(LOG4CPLUS_TEXT("thriftserver"));
_logger.addAppender(_append);
bFirst= false;
}
return _logger;
}
//写日志
LOG4CPLUS_ERROR(LOGGERTAG, "can notconnect remote host,ip:”<< ip);
2 Linux环境
log4cpp编译安装的路径是/opt/log4cpp
问题:如何正确引入动态库
1.修改/etc/ld.so.conf文件,将/opt/log4cpp/lib添加到文件末尾,该文件主要被ldconfig指令用来搜索可共享的动态链接库
2.执行ldconfig,根据修改的文件内容,创建出动态装入程序所需的连接和缓存文件,提供给系统动态库调用
手动:
g++ test.cpp -I/opt/log4cpp/include -L/opt/log4cpp/lib/ -llog4cpp-lpthread -o test
提示
test.cpp文件并没有依赖多线程库,但是log4cpp库依赖,所以必须在命令中指定,并且由于库的依赖次序:前面的库依赖后面的库,所以在log4cpp后面添加lpthread库。如果不知道需要添加哪些库依赖,可以参考/opt/log4cpp/bin/log4cp-config文件--libs --cflags输出,如下提供了如何在编译指令中添加log4cp-config的
例子:
g++ test.cpp`/opt/log4cpp/bin/log4cpp-config --libs --cflags` -o maintest
以上是关于log4cpp 用法的主要内容,如果未能解决你的问题,请参考以下文章