前面两行是定义了两个Logger对象,对象名分别是SERVER_LOG和CLIENT_LOGGER。在编写程序的时候,可以通过getInstance方法来取得Logger对象。右边的是Logger对象的值,DEBUG表示日志的级别,而用逗号隔开的右边的是与改Logger对象绑定的Appender。定义Logger对象的格式如下:
log4cplus.logger.LoggerName=LogLevel, AppenderName
接下来的内容就是定义Appender,所谓的appender其实是用于定义日志的输出媒介与各种参数。其中log4cplus::ConsoleAppender定义了由控制台输出。layout对象用于描述Appender的输出格式,而Appender就是输出类型。log4plus支持多种输出渠道,而且可以同时在配置中定义,比如:通过控制台,日志文件,VC的DEBUG窗口,网络(SOCKET)等方式。此处以控制台为例。log4cpp定义格式如下:
log4cplus.appender.AppenderName=log4cplus::ConsoleAppender log4cplus.appender.AppenderName.layout=log4cplus::PatternLayout log4cplus.appender.AppenderName.layout.ConversionPattern=%pattern
这里要注意的是,不同的Appender有不同的layout参数可配置,比如说如果你用了文件输出方式的Appender(FileAppender / RollingFileAppender / DailyRollingFileAppender),那么就会有filename等类似配置项。
写完配置文件,那就应该在代码中把它搞起来。log4plus提供了一些很简单的调用方法,代码如下:
log4cplus::initialize();
PropertyConfigurator::doConfigure(LOG4CPLUS_TEXT("log4cplus.properties.conf"));
Logger serverLogger = Logger::getInstance(LOG4CPLUS_TEXT("SERVER_LOG"));
Logger clientLogger = Logger::getInstance(LOG4CPLUS_TEXT("CLIENT_LOG"));
LOG4CPLUS_DEBUG(serverLogger, "server log");
LOG4CPLUS_DEBUG(clientLogger , "client log");
代码很容易理解:
log4cplus::initialize()
初始化log4cplus环境,在初始化的时候调用一次即可。
PropertyConfigurator::doConfigure()
加载配置文件,也是调用一次即可。这里要注意根据你的是否是Unicode版本而使用LOG4CPLUS_TEXT宏。
Logger::getInstance()

获取一个Logger对象,该对象在配置中定义。唯一参数就是Logger对象的名称。获取成功的话会返回一个Logger类的实例。
LOG4CPLUS_DEBUG()
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-29025-2.html
说的透彻
向学习
是解决途径之一