最近在琢磨LOG4CPLUS,这的确是个神器。
使用起来是挺简单,但是脚本还是要花点时间去了解的。
ok,废话不多说了,下面是我配置的脚本,希望能给朋友一些帮助:
- log4cplus.rootLogger=TRACE, STDOUT, ALL_MSGS, ERR_MSGS, DEBUG_MSGS, SPECIFIAL_MSGS
- log4cplus.appender.STDOUT=log4cplus::ConsoleAppender
- log4cplus.appender.STDOUT.Encoding=utf-8
- log4cplus.appender.ALL_MSGS=log4cplus::RollingFileAppender
- log4cplus.appender.ALL_MSGS.File=./log/run.log
- log4cplus.appender.ALL_MSGS.Appender=log4cplus::RollingFileAppender
- log4cplus.appender.ALL_MSGS.QueueLimit=100000
- log4cplus.appender.ALL_MSGS.MaxFileSize=1024MB
- log4cplus.appender.ALL_MSGS.MaxBackupIndex=100
- log4cplus.appender.ALL_MSGS.Encoding=utf-8
- log4cplus.appender.ALL_MSGS.layout=log4cplus::PatternLayout
- log4cplus.appender.ALL_MSGS.layout.ConversionPattern=%d{%y%m/%d %H:%M:%S} %-5p %c{2} %%%x%% - %m [%l]%n
- #log4cplus.appender.ALL_MSGS.Appender.ImmediateFlush=false
- #log4cplus.appender.ALL_MSGS.Appender.BufferSize=1024
- log4cplus.appender.ERR_MSGS=log4cplus::RollingFileAppender
- log4cplus.appender.ERR_MSGS.File=./log/error.log
- log4cplus.appender.ERR_MSGS.Appender=log4cplus::RollingFileAppender
- log4cplus.appender.ERR_MSGS.QueueLimit=100000
- log4cplus.appender.ERR_MSGS.MaxFileSize=1024MB
- log4cplus.appender.ERR_MSGS.MaxBackupIndex=100
- log4cplus.appender.ERR_MSGS.Encoding=utf-8
- log4cplus.appender.ERR_MSGS.layout=log4cplus::PatternLayout
- log4cplus.appender.ERR_MSGS.layout.ConversionPattern=%d{%y%m/%d %H:%M:%S} %-5p %c{2} %%%x%% - %m [%l]%n
- log4cplus.appender.ERR_MSGS.filters.1=log4cplus::spi::LogLevelMatchFilter
- log4cplus.appender.ERR_MSGS.filters.1.LogLevelToMatch=ERROR
- log4cplus.appender.ERR_MSGS.filters.1.AcceptOnMatch=true
- log4cplus.appender.ERR_MSGS.filters.2=log4cplus::spi::DenyAllFilter
- log4cplus.appender.DEBUG_MSGS=log4cplus::RollingFileAppender
- log4cplus.appender.DEBUG_MSGS.File=./log/debug.log
- log4cplus.appender.DEBUG_MSGS.Appender=log4cplus::RollingFileAppender
- log4cplus.appender.DEBUG_MSGS.QueueLimit=100000
- log4cplus.appender.DEBUG_MSGS.MaxFileSize=1024MB
- log4cplus.appender.DEBUG_MSGS.MaxBackupIndex=100
- log4cplus.appender.DEBUG_MSGS.Encoding=utf-8
- log4cplus.appender.DEBUG_MSGS.layout=log4cplus::PatternLayout
- log4cplus.appender.DEBUG_MSGS.layout.ConversionPattern=%d{%y%m/%d %H:%M:%S} %-5p %c{2} %%%x%% - %m [%l]%n
- log4cplus.appender.DEBUG_MSGS.filters.1=log4cplus::spi::LogLevelMatchFilter
- log4cplus.appender.DEBUG_MSGS.filters.1.LogLevelToMatch=DEBUG
- log4cplus.appender.DEBUG_MSGS.filters.1.AcceptOnMatch=true
- log4cplus.appender.DEBUG_MSGS.filters.2=log4cplus::spi::DenyAllFilter
- log4cplus.appender.SPECIFIAL_MSGS=log4cplus::RollingFileAppender
- log4cplus.appender.SPECIFIAL_MSGS.File=./log/specifial.log
- log4cplus.appender.SPECIFIAL_MSGS.Appender=log4cplus::RollingFileAppender
- log4cplus.appender.SPECIFIAL_MSGS.QueueLimit=100000
- log4cplus.appender.SPECIFIAL_MSGS.MaxFileSize=1024MB
- log4cplus.appender.SPECIFIAL_MSGS.MaxBackupIndex=100
- log4cplus.appender.SPECIFIAL_MSGS.Encoding=utf-8
- log4cplus.appender.SPECIFIAL_MSGS.layout=log4cplus::PatternLayout
- log4cplus.appender.SPECIFIAL_MSGS.layout.ConversionPattern=%d{%y%m/%d %H:%M:%S} %-5p %c{2} %%%x%% - %m [%l]%n
- log4cplus.appender.SPECIFIAL_MSGS.filters.1=log4cplus::spi::StringMatchFilter
- log4cplus.appender.SPECIFIAL_MSGS.filters.1.StringToMatch=specifial
- log4cplus.appender.SPECIFIAL_MSGS.filters.1.AcceptOnMatch=true
- log4cplus.appender.SPECIFIAL_MSGS.filters.2=log4cplus::spi::DenyAllFilter
这个脚本支持:
STDOUT:屏幕打印,
ALL_MSGS:所有消息写入日志,
ERR_MSGS:错误消息写入错误日志,
DEBUG_MSGS:debug日志写入debug日志文件,
SPECIFIAL_MSGS:匹配指定字符串的消息写入指定日志文件,
测试代码:
- #include <iostream>
- #include <log4cplus/logger.h>
- #include <log4cplus/configurator.h>
- #include <log4cplus/helpers/stringhelper.h>
- #include <log4cplus/loggingmacros.h>
- using namespace std;
- using namespace log4cplus;
- using namespace log4cplus::helpers;
- #define LOG4CPLUS_CONF_FILE "./log4cplus.properties"
- int main()
- {
- PropertyConfigurator::doConfigure(LOG4CPLUS_TEXT(LOG4CPLUS_CONF_FILE));
- Logger logger = Logger::getRoot();
- LOG4CPLUS_DEBUG(logger, "This is a DEBUG message");
- LOG4CPLUS_INFO(logger, "This is a INFO message");
- LOG4CPLUS_WARN(logger, "This is a WARN message");
- LOG4CPLUS_ERROR(logger, "This is a ERROR message");
- LOG4CPLUS_FATAL(logger, "This is a FATAL message");
- LOG4CPLUS_FATAL(logger, "This is a specifial message");
- LOG4CPLUS_INFO(logger, "This is a specifial message");
- return 0;
- }
测试结果: