Log4cpp的使用

2 篇文章 0 订阅
2 篇文章 0 订阅

上一篇文章介绍如何编译Log4cpp,现在介绍一下如何使用它。

Log4cpp有三个主要的组件:日志类别(Category)、输出源(Appender)和布局(Layout)。

  1. 日志类别(Category):如果配置文件中设置日志的级别是DEBUG,则任意的log都能打印出来,因为DEBUG是最低的级别;但如果配置的级别是ERROR,则只有高于ERROR优先级的日志才可以打印出来。
    优先级:DEBUG < INFO < WARN < ERROR < FATAL

  2. 输出源(Appender):用来输出日志(被layout格式化后)到一些设备上,比如文件、命令行、内存等,也可以定义自己的appender输出日志信息到别的设备上。log4cpp提供的appender如下: FileAppender 输出到文件 ;ConsoleAppender 输出到控制台。

  3. 布局(Layout):显示样式PatternLayout表示让用户根据类似于C语言printf函数的转换模式来指定输出日志的文本格式。
    %d 输出日志时间点的日期或时间,可以在其后指定格式,如上%d{%Y-%m-%d %H:%M:%S.%l},输出类似:2019-01-14 09:25:00.953
    %p 优先级,即DEBUG,INFO,WARN,ERROR,FATAL
    %c 输出日志信息所属的类目,通常就是所在类的全名
    %m 输出log的具体信息
    %n 回车换行
    %p 优先级;
    %r 自从layout被创建后的毫秒数;
    %R 从1970年1月1日0时开始到目前为止的秒数;
    %u 进程开始到目前为止的时钟周期数;

三个组件之间的关系:

  • Category和Appender的关系是:多个Appender可以附加到一个Category上,这样一个日志消息可以同时输出到多个设备上;
  • Appender和Layout的关系是:Layout附加在Appender上,appender调用layout处理完日志消息后,记录到某个设备上。

1.包含头文件

#include <log4cpp/Category.hh>
#include <log4cpp/OstreamAppender.hh>
#include <log4cpp/Priority.hh>
#include <log4cpp/PatternLayout.hh>
#include <log4cpp/FileAppender.hh>

2.调用程序:

	//创建一个Layout;
	log4cpp::PatternLayout* layout = new log4cpp::PatternLayout();
	//指定输出的布局格式;
	layout->setConversionPattern("%d: %p %c %x: %m%n");
	
	//创建一个文件Appender;
	log4cpp::Appender* fileAppender = new log4cpp::FileAppender("fileAppender", "xxx.log");
	//将指定的Layout添加到Appender;
	fileAppender->setLayout(layout);

	//从系统中得到Category的根;
	log4cpp::Category& category = log4cpp::Category::getRoot().getInstance("RootName");
	//将Appender添加到Category;
	category.addAppender(fileAppender);
	//设置Category的优先级;
	category.setPriority(log4cpp::Priority::DEBUG);

	//开始记录日志;
	category.info("这是一条信息日志");									  
	category.warn("这是一条警告日志");
	category.error("这是一条错误日志");
	category.debug("这是一条调试日志");
	category.fatal("这是一条严重错误日志");

	//关闭Category;
	log4cpp::Category::shutdown();

运行结果,在文件xxx.log中输出内容:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wb175208

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值