linux 下使用log4cxx服务

来源:互联网 发布:淘宝卖家自动回复大全 编辑:程序博客网 时间:2024/05/22 03:31

写的代码中要使用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.ConsoleAppenderlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern=%d [%t] %-5p %c - %m%nlog4j.appender.logfile=org.apache.log4j.RollingFileAppenderlog4j.appender.logfile.File=./ZW.loglog4j.appender.logfile.MaxFileSize=100KBlog4j.appender.logfile.MaxBackupIndex=10log4j.appender.logfile.layout=org.apache.log4j.PatternLayoutlog4j.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  查找动态链接库目录

0 0
原创粉丝点击