深入浅出(二)log4cplus库
log4cplus库1. log4cplus简介1.1 log4cplus下载1.2 log4 系列日志库对比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/目录结构includemsvc14目录自带的测试代码1.2 log4 系列日志库对比库定位Qt依赖配置文件多线程异步日志活跃度/现代性更适合log4qtQt 风格 log4j 实现有支持支持能做但不是强项相对传统纯 Qt 项目log4cplus通用 C log4j 实现无支持支持支持比较成熟SDK、DLL、跨平台 Clog4cxxApache 官方系 C 实现无支持支持支持成熟但偏重大型传统项目log4cpp老牌 C 日志库无支持支持一般比较老维护旧项目spdlog现代高性能 C 日志库无可自行配置支持很好很活跃新项目推荐glogGoogle 日志库无不以 log4j 配置为主支持一般成熟Google 风格、服务端2. log4cplus配置1、进入log4cplus-2.0.8/msvc14用Visual Studio 2019打开文件log4cplus.sln2、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.rootLoggerDEBUG, STDOUT# 设置根日志记录器的级别为 ALL所有消息都会被记录。根日志记录器会将日志消息发送到名为FILE的没日志目的地appenderlog4cplus.rootLoggerALL, FILE########################################################################################################## 控制台输出的配置# 定义了一个名为STDOUT 的输出目标这里是将日志输出到控制台。log4cplus.appender.STDOUTlog4cplus::ConsoleAppender# 指定了输出格式为PatternLayout这允许你定义日志消息的格式。log4cplus.appender.STDOUT.layoutlog4cplus::PatternLayout# 定义了日志消息的格式包括日期时间、线程名、日志级别、日志记录器名称、日志消息本身等内容。log4cplus.appender.STDOUT.layout.ConversionPattern%D{%Y-%m-%d %H:%M:%S.%q}[%t]%-5p %c - %m%n########################################################################################################## 文件输出的配置# 基于文件大小滚动会根据文件大小阈值来创建新的日志文件# log4cplus.appender.FILElog4cplus::RollingFileAppender# 基于时间滚动会根据一定的时间间隔创建日志文件log4cplus.appender.ALL_MSGSlog4cplus::TimeBasedRollingFileAppenderlog4cplus.appender.FILE.Filesample.log#设置输出日志路径log4cplus.appender.FILE.FilenamePattern./Log/%d{yyyy_MM_dd}.loglog4cplus.appender.FILE.ScheduleDAILY# 按天存储log4cplus.appender.FILE.MaxHistory365# 最多保留365个文件log4cplus.appender.FILE.CreateDirstrue# 目录不存在会自动创建#设置日志文件大小log4cplus.appender.FILE.MaxFileSize5MB#设置生成日志最大个数log4cplus.appender.FILE.MaxBackupIndex10# 日志输出格式 有词法分析功能的模式布局器log4cplus.appender.FILE.layoutlog4cplus::PatternLayout# log4cplus.appender.FILE.layout.ConversionPattern%D{%m/%d/%y %H:%M:%S.%q} [%t] %-5p %c - %m%n# 定义了日志信息的输出格式包括日期时间、线程信息、位置信息、日志级别、类名和日志消息log4cplus.appender.ALL_MSGSlog4cplus::TimeBasedRollingFileAppenderC示例#includelog4cplus/logger.h#includelog4cplus/configurator.h#includelog4cplus/loggingmacros.hintmain(){// 初始化log4cpluslog4cplus::initialize();// 从配置文件中加载配置log4cplus::PropertyConfigurator::doConfigure(log4cplus.properties);// 获取一个loggerlog4cplus::Logger loggerlog4cplus::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);// 关闭log4cpluslog4cplus::Logger::shutdown();return0;}

相关新闻

在PHP中如何使用I/O多路复用技术提高网络编程性能?

在PHP中如何使用I/O多路复用技术提高网络编程性能?

在PHP中使用I/O多路复用技术来提高网络编程性能,就像是我们用一个超级望远镜来同时观察很多星星,而不是用普通望远镜一个个地看。这样,我们可以更快地知道哪颗星星有变化,而不需要浪费时间一个个检查。在PHP网络编程中&#xff0c…

2026/10/25 19:57:30 阅读更多 →
在PHP中如何实现连接池?有哪些注意事项?

在PHP中如何实现连接池?有哪些注意事项?

在PHP中实现连接池,我们可以想象成一个“管理员”负责管理和维护一个装满“游泳圈”(网络连接)的“游泳池”(连接池)。下面我会用非常简单的方式来解释这个过程。如何实现:创建一个“游泳池”:首…

2026/11/7 10:38:34 阅读更多 →
【单片机毕设案例分享】便携式 STM32 人体健康监测设备及移动端监控软件开发 基于 STM32 的 MAX30102 与 DS18B20 传感监测系统设计(013206)

【单片机毕设案例分享】便携式 STM32 人体健康监测设备及移动端监控软件开发 基于 STM32 的 MAX30102 与 DS18B20 传感监测系统设计(013206)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于单片机,STM32单片机,51单片机,J…

2026/11/10 7:48:32 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/11/10 23:32:01 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/11/10 23:32:03 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/11/10 2:03:25 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/11/10 16:14:15 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/11/10 12:51:50 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/11/10 23:32:10 阅读更多 →

日新闻

周新闻

月新闻