log4cplus库
- 1. log4cplus简介
- 1.1 log4cplus下载
- 2. log4cplus配置
- 3. log4cplus配置文件 *.properties 配置
1. log4cplus简介
log4cplus是C++编写的开源的日志系统。log4cplus具有线程安全、灵活、以及多粒度控制的特点,通过将日志划分优先级使其可以面向程序调试、运行、测试、和维护等全生命周期。可选择将日志输出到屏幕、文件、NT event log、甚至是远程服务器;通过指定策略对日志进行定期备份等等。
1.1 log4cplus下载
- 官网地址:https://sourceforge.net/projects/log4cplus/files/log4cplus-stable/
- GitHub地址:https://github.com/log4cplus/log4cplus
- 官方文档:https://sourceforge.net/p/log4cplus/wiki/Home/
目录结构
- include
- msvc14目录自带的测试代码
2. log4cplus配置
1、进入log4cplus-2.0.8/msvc14,用Visual Studio 2019打开文件log4cplus.sln
2、Visual Studio 2019将编译平台的配置管理器修改为release-x64,重新编译
3、64位下选择debug和release模式下分别编译,编译成功后在x64/bin.Release和x64/bin.Debug下生成对应的log4cplus.dll和log4cplus.lib。
3. log4cplus配置文件 *.properties 配置
- log4cplus的日志级别从低到高依次是:TRACE, DEBUG, INFO, WARN, ERROR, FATAL, OFF
# 设置根日志记录器的级别为 DEBUG,并指定使用名为 STDOUT的输出目标。
# log4cplus.rootLogger=DEBUG, STDOUT
# 设置根日志记录器的级别为 ALL,所有消息都会被记录。根日志记录器会将日志消息发送到名为FILE的没日志目的地(appender)
log4cplus.rootLogger=ALL, FILE
#########################################################################################################
# 控制台输出的配置
# 定义了一个名为STDOUT 的输出目标,这里是将日志输出到控制台。
log4cplus.appender.STDOUT=log4cplus::ConsoleAppender
# 指定了输出格式为PatternLayout,这允许你定义日志消息的格式。
log4cplus.appender.STDOUT.layout=log4cplus::PatternLayout
# 定义了日志消息的格式,包括日期时间、线程名、日志级别、日志记录器名称、日志消息本身等内容。
log4cplus.appender.STDOUT.layout.ConversionPattern=%D{%Y-%m-%d %H:%M:%S.%q} [%t] %-5p %c - %m%n
#########################################################################################################
# 文件输出的配置
# 基于文件大小滚动,会根据文件大小阈值来创建新的日志文件
# log4cplus.appender.FILE=log4cplus::RollingFileAppender
# 基于时间滚动,会根据一定的时间间隔创建日志文件
log4cplus.appender.ALL_MSGS=log4cplus::TimeBasedRollingFileAppender
log4cplus.appender.FILE.File=sample.log
#设置输出日志路径
log4cplus.appender.FILE.FilenamePattern=./Log/%d{yyyy_MM_dd}.log
log4cplus.appender.FILE.Schedule=DAILY # 按天存储
log4cplus.appender.FILE.MaxHistory=365 # 最多保留365个文件
log4cplus.appender.FILE.CreateDirs=true # 目录不存在会自动创建
#设置日志文件大小
log4cplus.appender.FILE.MaxFileSize=5MB
#设置生成日志最大个数
log4cplus.appender.FILE.MaxBackupIndex=10
# 日志输出格式 有词法分析功能的模式布局器
log4cplus.appender.FILE.layout=log4cplus::PatternLayout
# log4cplus.appender.FILE.layout.ConversionPattern=%D{%m/%d/%y %H:%M:%S.%q} [%t] %-5p %c - %m%n
# 定义了日志信息的输出格式,包括日期时间、线程信息、位置信息、日志级别、类名和日志消息
log4cplus.appender.ALL_MSGS=log4cplus::TimeBasedRollingFileAppender
- C++示例
#include <log4cplus/logger.h>
#include <log4cplus/configurator.h>
#include <log4cplus/loggingmacros.h>
int main() {
// 初始化log4cplus
log4cplus::initialize();
// 从配置文件中加载配置
log4cplus::PropertyConfigurator::doConfigure("log4cplus.properties");
// 获取一个logger
log4cplus::Logger logger = log4cplus::Logger::getRoot();
// 记录不同级别的日志
LOG4CPLUS_TRACE(logger, "This is a TRACE message");
LOG4CPLUS_DEBUG(logger, "This is a DEBUG message");
LOG4CPLUS_INFO(logger, "This is an INFO message");
LOG4CPLUS_WARN(logger, "This is a WARN message");
LOG4CPLUS_ERROR(logger, "This is an ERROR message");
LOG4CPLUS_FATAL(logger, "This is a FATAL message");
// 关闭log4cplus
log4cplus::Logger::shutdown();
return 0;
}