log4cplus mysql_log4cplus 日志库使用

本文介绍了在Windows环境下如何使用log4cplus设置日志模板,包括时间戳显示,并展示了创建日志文件和写入日志的示例。同时,讨论了在Linux环境下log4cpp的动态库引入方法,强调了多线程库的必要性。
摘要由CSDN通过智能技术生成

1 windows环境

1.1创建一个日志模板

当前使用的版本 log4cplus-1.2.1-rc2

staticbool bFirst = true;

Logger_logger = Logger::getInstance(LOG4CPLUS_TEXT("thriftserver"));

if(bFirst)

{

SharedAppenderPtr_append(new RollingFileAppender(LOG4CPLUS_TEXT("thriftserver.log"),300 * 1024, 20));

auto_ptrpPatternLayout(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 pPatternLayout(newPatternLayout("%d- %m [%l]%n"));

显示的是格林威治的时间

auto_ptr pPatternLayout(newPatternLayout("%D- %m [%l]%n"));

显示的是本地的时间

auto_ptr pPatternLayout(new PatternLayout("%D{%Y-%m-%d %H:%M:%S.%q}- %m [%l]%n"));

显示的是本地时间,并且精确到毫秒

1.3 使用例子

#include

#include

#include

#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_ptrpPatternLayout(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);

输出到控制台

#include

/output to file

SharedAppenderPtr pFileAppender(new RollingFileAppender(strPathName, 10000 * 1024, 20));

std::auto_ptr pFilePatternLayout(new PatternLayout("%D{%Y-%m-%d %H:%M:%S.%q}- %m [%l]%n"));

pFileAppender->setLayout(pFilePatternLayout);

pFileAppender->setName(LOG4CPLUS_TEXT("file"));

//output to console

SharedAppenderPtr pConsoleAppender(new ConsoleAppender());

std::auto_ptr pConsolePatternLayout(new PatternLayout("%D{%Y-%m-%d %H:%M:%S.%q}- %m [%l]%n"));

pConsoleAppender->setLayout(pConsolePatternLayout);

pConsoleAppender->setName(LOG4CPLUS_TEXT("console"));

loggerer.addAppender(pFileAppender);

loggerer.addAppender(pConsoleAppender);

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

修订

2019/8/23 日志精确显示毫秒

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值