您的位置:首页 > 运维架构 > Linux

linux 下使用log4cxx服务

2016-01-14 11:26 621 查看
写的代码中要使用log日志,师兄用了log4cxx,所以搜了一下。记录下来以备后用

一.下载解压
http://logging.apache.org/log4cxx/, http://apr.apache.org/

apr-1.4.6.tar.gz,  apr-util-1.4.1.tar.gz,  apache-log4cxx-0.10.0.tar.gz

1.tar zxvf apr-1.4.6.tar.gz

2.tar zxvf apr-util-1.4.1.tar.gz

3.tar zxvf apache-log4cxx-0.10.0.tar.gz

二 .编译安装

首先安装apr-1.4.6,切换cd apr-1.4.6,配置./configure --prefix=/usr/local/apr,接着make, make install

接着安装apr-util-1.4.1,切换至cd ../apr-util-1.4.1, ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr,接着make,make install;

最后安装apache-log4cxx-0.10.0,切换cd ../apache-log4cxx-0.10.0,配置./configure --prefix=/usr/local/log4cxx --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util

三.测试

1.代码:
<pre name="code" class="cpp">#include <log4cxx/logger.h>
#include <log4cxx/logstring.h>
#include <log4cxx/propertyconfigurator.h>
int main(int argc, char* argv[])
{
using namespace log4cxx;
// 读取配置文件
PropertyConfigurator::configure("conf.log");
//缺省配置
//BasicConfigurator::configure();
// 建立两个logger
LoggerPtr logger1 = Logger::getLogger("TraceYourMama");
LoggerPtr logger2 = Logger::getLogger("Patch");
LOG4CXX_TRACE(logger1, "跟踪");
LOG4CXX_WARN(logger1, "警告");
LOG4CXX_DEBUG(logger1, "调试");
LOG4CXX_ASSERT(logger1, false, "断言");
LOG4CXX_FATAL(logger1, "致命");
LOG4CXX_TRACE(logger2, "跟踪");
LOG4CXX_ERROR(logger2, "错误");
return 0;
}


配置文件:

log4j.rootLogger=TRACE, stdout, logfile //<span style="color: rgb(51, 51, 51); font-family: Arial; font-size: 14px; line-height: 26px;"># 设置root logger为TRACE级别,使用了 stdout 和 logfile两个Appender</span>

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d [%t] %-5p %c - %m%n

log4j.appender.logfile=org.apache.log4j.RollingFileAppender
log4j.appender.logfile.File=./ZW.log
log4j.appender.logfile.MaxFileSize=100KB
log4j.appender.logfile.MaxBackupIndex=10
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d [%t] %-5p %c - %m%

4 核心类

Log4cxx有三个关键组件,它们是loggers, appenders和layouts。

Logger是log4cxx的核心类,只要执行日志操作;looger有层次结构,最顶层为RootLogger;logger是有级别的。每个logger可以附加多个Appender。Appender代表了日志输出的目标,如输出到文件、控制台等等。对于每一种appender,都可以通过layout进行格式设置。

此外在使用中还会用到的类有BasicConfigurator、PropertyConfigurator和DOMConfigurator等,用于对log4cxx进行配置。其中:

BasicConfigurator提供了一种简单配置,包括使用ConsoleAppder作为root appender和PatternLayout作为缺省布局。

PropertyConfigurator使用properties文件作为配置方式。

DOMConfigurator则使用properties文件作为配置方式。

选择合适的输出格式。使用SimpleLayout将达到与std::cout相当的速度。

5 编译命令
运行时加:export LD_LIBRARY_PATH=/usr/local/log4cxx/lib:$LD_LIBRARY_PATH

使用:pkg-config --libs log4cpp  查找动态链接库目录
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: