log4cxx日志记录

      

       刚进入软件行业,正在学习过程中。
      写了一个最简单的 关于日志记录的程序,该示例在功能上创建了一个日志服务,该日志可通过配置文件进行必要控制,并可以同时向文件和控制台输出信息,但是还有一点小问题没解决。

       log_multi.cpp 中内容如下:

#include <string>

#include <iostream>

#include <log4cxx/logger.h>

#include <log4cxx/basicconfigurator.h>

#include <log4cxx/helpers/exception.h>

#include <log4cxx/propertyconfigurator.h>

using namespace std;

using namespace log4cxx;

class CLogInFile

{public:

        static LoggerPtr logger_Parse;

        static LoggerPtr logger_Record;

};

LoggerPtr CLogInFile::logger_Parse=Logger::getLogger("myparse.record");

LoggerPtr CLogInFile::logger_Record=Logger::getLogger("mypcap.record");

int main(int argc,char* argv[])

{

    string msg=_T("log_multi.properties");

    PropertyConfigurator::configure(msg);

       //日志记录级别在in log_multi.properties中已设定: logger_Parse -- WARN   logger_Record –INFO

     //只有日志请求的级别不小于已设定的级别时才会记录日志

//TRACE < DEBUG < INFO < WARN < ERROR < FATAL

//请求级别DEBUG <设定级别WARN下面第一个不会被记录

    LOG4CXX_DEBUG(CLogInFile::logger_Parse,"Parselog: debug information");

    LOG4CXX_ERROR(CLogInFile::logger_Parse,"Parselog: error information");//ERROE>WARN

    LOG4CXX_INFO(CLogInFile::logger_Record,"Pcaplog: World");

    LOG4CXX_WARN(CLogInFile::logger_Parse,"Parselog: warn information");

    return 0;

}

       log_multi.properties 中内容如下:

log4j.rootLogger=TRACE,stdout,R

log4j.category.mypcap.record=INFO,stdout,R

log4j.category.myparse.record=WARN,stdout,R

log4j.appender.stdout=org.apache.log4j.ConsoleAppender

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

log4j.appender.stdout.layout.ConversionPattern=%d [%-5p],[%F:%L]-%m%n

log4j.appender.R=org.apache.log4j.RollingFileAppender

log4j.appender.R.File=out.log

log4j.appender.R.MaxFileSize=3000KB

log4j.appender.R.MaxBackupIndex=5

log4j.appender.R.layout=org.apache.log4j.PatternLayout

       运行该程序如下:

[n@myname 1]$ g++ -c log_multi.cpp -o log_multi.o

[n@myname 1]$ g++ log_multi.o -o log_multi -llog4cxx

[n@myname 1]$ ./log_multi

2008-05-19 16:59:43,409 [ERROR],[log_multi.cpp:34]-Parselog: error information

2008-05-19 16:59:43,409 [ERROR],[log_multi.cpp:34]-Parselog: error information

2008-05-19 16:59:43,409 [INFO ],[log_multi.cpp:35]-Pcaplog: World

2008-05-19 16:59:43,409 [INFO ],[log_multi.cpp:35]-Pcaplog: World

2008-05-19 16:59:43,410 [WARN ],[log_multi.cpp:36]-Parselog: warn information

2008-05-19 16:59:43,410 [WARN ],[log_multi.cpp:36]-Parselog: warn information

[n@myname 1]$ vim out.log

    可看到out.log中也有相同的日志记录,该文件是在程序执行的过程中被创建的。

    日志被输出了两遍,不知道什么原因,希望哪位高手指点一下,不胜感激。

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值