【log4cpp_学习】2_log4cpp配置文件的使用
2_log4cpp配置文件的使用
- 0 log4cpp
- 1 配置文件说明
- 1 rootCategory
- 2 自定义Category
- 2 实验代码
- 2.1 配置文件
- 2.2 代码
- 2.3 代码编译
0 log4cpp
log4cpp种最重要的概念有
Category
(种类)、Appender
(附加器)、layout
(布局)、Priority
(优先级)、NDC
(嵌套的诊断上下文)。
其中,Category、Appender与Layout三者的关系如下图所示:
1 配置文件说明
1 rootCategory
log4cpp
的category
分为rootCategory
和其他自定义的category
。而每个category
均可以输出到多个appender
,且category
也是具有包含关系的。如rootcategory
为所有category
的根,且自定义的category
也可以具有包含关系。
如下是一个rootcategory
的配置。
log4cpp.rootCategory=DEBUG, rootAppender1, rootAppender2
这个定义里,指定rootcategory
的log优先级为DEBUG
,其中根Category
包含两个appender
,分别为 rootAppender1
和 rootAppender2
。
2 自定义Category
log4cpp.category.demo=DEBUG, sample
这个定义中,指自定义了一个名字为demo
的category
,其日志优先级为DEBUG
,appender
的名字为sample
。
2 实验代码
2.1 配置文件
# 定义root Category的属性
log4cpp.rootCategory=DEBUG, rootAppender# 自定义三个 category 的属性
log4cpp.category.sub1=DEBUG, A1, A2
log4cpp.category.sub1.sub2=DEBUG, A3
log4cpp.category.txhAppender=DEBUG, txh# 配置root Category中 rootAppender 的输出位置 输出格式,
log4cpp.appender.rootAppender=ConsoleAppender
log4cpp.appender.rootAppender.layout=PatternLayout
log4cpp.appender.rootAppender.layout.ConversionPattern=%d [%p] %m%n # 配置自定义 appender “A1” 的 输出位置和输出格式
log4cpp.appender.A1=FileAppender
log4cpp.appender.A1.fileName=A1.log
log4cpp.appender.A1.layout=BasicLayout# 配置自定义 appender “A2” 的 输出位置和输出格式
log4cpp.appender.A2=FileAppender
log4cpp.appender.A2.threshold=WARN
log4cpp.appender.A2.fileName=A2.log
log4cpp.appender.A2.layout=PatternLayout
log4cpp.appender.A2.layout.ConversionPattern=%d [%p] %m%n # 配置自定义 appender “A3” 的 输出位置和输出格式
log4cpp.appender.A3=RollingFileAppender
log4cpp.appender.A3.fileName=A3.log
log4cpp.appender.A3.maxFileSize=200
log4cpp.appender.A3.maxBackupIndex=1
log4cpp.appender.A3.layout=PatternLayout
log4cpp.appender.A3.layout.ConversionPattern=%d [%p] %m%n # 配置名字为 “txh” 的 自定义 appender的 输出位置和输出格式
log4cpp.appender.txh=SyslogAppender
log4cpp.appender.txh.layout=PatternLayout
log4cpp.appender.txh.layout.ConversionPattern=%d [%p] %m%n
2.2 代码
#include <unistd.h>
#include "log4cpp/Category.hh"
#include "log4cpp/Appender.hh"
#include "log4cpp/FileAppender.hh"
#include "log4cpp/OstreamAppender.hh"
#include "log4cpp/Layout.hh"
#include "log4cpp/BasicLayout.hh"
#include "log4cpp/Priority.hh"
#include "log4cpp/PropertyConfigurator.hh"
#include "log4cpp/SyslogAppender.hh"
#include "log4cpp/LoggingEvent.hh"
#include <log4cpp/PatternLayout.hh>int main(int argc , char* argv[])
{try{log4cpp::PropertyConfigurator::configure("./log4cpp.conf");}catch(log4cpp::ConfigureFailure& f){std::cerr << f.what() << std::endl;return -1;}log4cpp::Category& root = log4cpp::Category::getRoot();log4cpp::Category& sub1 = log4cpp::Category::getInstance(std::string("sub1"));log4cpp::Category& sub2 = log4cpp::Category::getInstance(std::string("sub1.sub2"));log4cpp::Category& txh = log4cpp::Category::getInstance(std::string("txhAppender"));root.warn("stom is coming");sub1.debug("Received storm warning");sub1.info("closing all hatches");sub2.debug("Hiding solar panels");sub2.error("Solar panels are blocked");sub2.debug("Applying protective shield");sub2.warn("Unfolding protective shield");sub2.info("Solar panels are shielded");sub1.info("All hatches closed");root.info("Ready for storm.");while(1){txh.info("caonima");sleep(1);}log4cpp::Category::shutdown();
}
2.3 代码编译
g++ test2.cpp -o main -llog4cpp -lpthread
【log4cpp_学习】2_log4cpp配置文件的使用相关推荐
- VIM学习笔记 配置文件(vimrc)
为什么80%的码农都做不了架构师?>>> VIM学习笔记 配置文件(vimrc) 在vim启动过程中,首先将查找配置文件并执行其中的命令.而这些初始化文件一般有vimrc.gv ...
- 从零学习Nginx配置文件,呕心沥血w字长文
1 Nginx介绍 1 Nginx基本概念 可以理解为 nginx 是服务器的软件 1.1 反向代理 **正向代理:**需要在客户端(浏览器)配置代理服务器,通过代理服务器进行互联网访问. 反向代理: ...
- redis学习之三配置文件redis.conf 的含义
摘自http://www.runoob.com/redis/redis-conf.html 安装redis之后的第一件事,我就开始配置密码,结果总是不生效,而我居然还没想到原因.今天突然用命令行设置了 ...
- nginx的学习(配置文件,以及部署的疑惑)
1.在windows下安装nginx,解压之后,在此目录下,dos进去,start nginx 2.配置文件: http { include mime.types; def ...
- DotText源码学习——从配置文件Web.config入手(一)
2010-03-19 17:18 by 吴秦, 2409 阅读, 12 评论, 收藏, 编辑 概述 ASP.NET配置数据存储在名为Machine.config/Web.config的XML文本文件中 ...
- Spring Boot 学习之配置文件 application.yml
一.创建配置文件 如图所示,我们在resources文件夹中新建配置文件application.yml 结构图 二.一些基本配置 server: port: 8090 //配置端口session-ti ...
- FATE学习:配置文件解析及V1/V2版本对比
综述 为了让任务模型的构建更加灵活,目前 FATE 使用了一套自定的领域特定语言 (DSL) 来描述任务. 在 DSL 中,各种模块(例如数据读写 data_io,特征工程 feature-engin ...
- kafka配置文件 中文乱码_Kafka学习之配置文件详解
------------------------------------------- 系统 相关 ------------------------------------------- ## 每一个 ...
- spring-security学习笔记--配置文件
来源:http://blog.sina.com.cn/s/blog_7c3328d701013fct.html <?xml version="1.0" encoding=&q ...
- ambassador 学习五 配置文件简述
Ambassador 配置通过yaml 的定义文件 格式 apiVersion 版本,当前支持的版本为 ambassador/v0 kind 支持的类型,目前有Module AuthService R ...
最新文章
- python 对 yaml 文件操作
- POJ 3126 Prime Path
- 直播丨分布式数据库:从PG-XL到TBASE
- MyBatis之基于XML的动态SQL
- echarts-for-react的使用详解
- Qt4_快速设计对话框
- 熟悉 CMake (三)—— 配置 opencv3
- 主键和外键举例_数据库-主键和外键及其约束
- Hadoop大数据开发技术
- 【高效学数据库】第一范式、第二范式、BCNF范式、第三范式、第四范式概念及举例
- 防火墙结构之双重宿主主机结构
- sis最新ip地址2020入口一_2020最新国风修仙问道3DMMORPG手游大道争锋官网正版首发入口...
- 无线连接中心服务器连接异常,解决Win7/Win8.1的无线网络连接受限故障
- 5.系统设计的工作内容与技能工具有哪些?
- RESTful架构和实现级别
- 曼哈顿算法公式_距离计算方法总结 | Public Library of Bioinformatics
- C语言基础习题及答案7
- Muli3D 9 CubeTexture的采样原理
- 什么是计算机网络协议叙述协议的三要素,网络协议的含义及三要素是什么
- 网页端Skype更新 在桌面/移动平台添加对Safari的支持
热门文章
- nano命令,vi ed pico sed joe emacs jed ex
- JSP九大内置对象的作用和用法
- python编程基础及应用教程答案_Python编程基础教程
- Python核心编程第二版 第七章课后练习 7-6. 列表和字典
- 服务器修改开机启动项,启动项设置_服务器开机启动项
- 安装马上6的问题解决
- c#明华rf读卡器_:C# 实现明华读卡器(2)
- 避坑!!!Matlab中文版下载地址、详细讲解Matlab中文版的下载、安装
- 张宇1000题高等数学 第十三章 多元函数微分学
- Modbus 调试工具: Modbus poll与Modbus slave下载与使用(下)