最近在琢磨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;
}
测试结果:
ok,就到这里!!!