一、Layout,设置日志输出风格
有BasicLayout、SimpleLayout、PatternLayout,其中BasicLayout,SimpleLayout主要是提供的成型的简单日志风格,实际中基本不会使用,主要是使用PatternLayout对日志做格式输出,Layout是加载到Appender中去的。
涉及头文件:
#include<log4cpp/BasicLayout.hh>
#include<log4cpp/SimpleLayout.hh>
#include<log4cpp/PatternLayout.hh>
BasicLayout: "以时间戳 + 优先级 + 内容"
构造函数:
log4cpp::BasicLayout::BasicLayout()
输出例子格式:
1248337987 ERROR : Hello log4cppin a Error Message!
1248337987 WARN : Hello log4cppin a Warning Message!
SimpleLayout:"优先级 + 日志信息"
log4cpp::SimpleLayout::SimpleLayout()
PatterLayout: "使用类似 printf 的格式化模式"
构造函数:
log4cpp::PatternLayout::PatternLayout()
PatterLayout 设置日志格式函数:
void log4cpp::PatternLayout::setConversionPattern(const std::string &conversionPattern) throw(ConfigureFailure)
使用 PatterLayout 时的格式化参数:
%c category;
%d 日期;日期可以进一步的设置格式,用花括号包围,例如%d{
%H:%M:%S,%l} 或者 %d{
%d %m
%Y%H:%M:%S,%l}。
%m 消息;
%n 换行符,会根据平台的不同而不同,但对于用户透明;
%p 优先级;
%r 自从 layout 被创建后的毫秒数;
%R 从 1970 年 1 月 1 日 0 时开始到目前为止的秒数;
%u 进程开始到目前为止的时钟周期数;
log4cpp::PatternLayout* pLayout = new log4cpp::PatternLayout();
pLayout->setConversionPattern("%d: [%p] %c %x: %m %n");
appender->setLayout(pLayout);
二、Appender,确定日志输出行为
例如输出到哪儿,如何输出。类Appender是由Category来加载的,一个Category可以加载多个Appender,输出到多个地方,一个Appender也可以被多个Category加载,但是有些Appender类没有设置互斥,日志的多线程支持主要是在Category里做的处理,因此不要使用一个Appender加载到多个Category中。
涉及头文件:
#include <log4cpp/Appender.hh>
#include <log4cpp/OstreamAppender.hh>

最低0.47元/天 解锁文章
524

被折叠的 条评论
为什么被折叠?



