c++ 开源日志库选择

C++ 日志记录库开源实现与实践 日志级别是控制日志输出详细程度的工具,它允许开发者按照重要性对日志消息进行分类。DEBUG,INFO,WARNING,ERROR,CRITICAL在Log.h中,我们定义了五种日志级别:DEBUGINFOWARNINGERRORCRITICAL。这些级别不仅用于控制日志的输出,还可以作为过滤条件,来决定日志消息是否被写入到日志文件或控制台中。在日志记录实践中,日志级别是控制日志信息的重要机制,它允许开发者根据信息的紧急程度和重要性过滤日志。C++中常见的标准日志级别包括。 阅读详情

待选为 glog、log4cplus、log4cpp、log4cxx


目前准备使用glog,使用方便,性能也不错,待进一步试验,如果有不能满足的功能就转用 log4cplus,功能很全面,不过稍复杂些。

其它两个都是三年前就没更新,没好感,暂不准备使用。


1.log4cplus

最新版本:1.1.0   2012-03-11

下载地址:http://sourceforge.net/projects/log4cplus/files/log4cplus-stable/1.1.0

功能全面,使用稍复杂。

代码示例:

#include <log4cplus/layout.h>  
#include <log4cplus/configurator.h>  
#include <iomanip>  
SharedAppenderPtr pFileAppender(new FileAppender("testlog.log"));  
Logger pTestLogger = Logger::getInstance("LoggerName");  
pTestLogger.addAppender(pFileAppender);   
sprintf(a,"%d",i);  
LOG4CPLUS_WARN(pTestLogger, "This is a <Warn> log message..." << a );

2.log4cxx

最新版本: 0.10.0  2008-04-03

下载地址:http://logging.apache.org/log4cxx/download.html

编译很麻烦 新的版本0.10.0需要使用Apache的产品Ant来编译,而Ant又需要JDK。。。

怕麻烦,没有下载测试。


3. glog

最新版本: 0.3.2  2012-1-12

下载地址:http://code.google.com/p/google-glog/downloads/list

使用方便,性能也不错。

Google Glog 是一个C++语言的应用级日志记录框架,提供了 C++ 风格的流操作和各种助手宏。

Google glog是一个基于程序级记录日志信息的c++库,编程使用方式与c++的stream操作类似

代码示例:

#include <glog/logging.h>  
  
google::InitGoogleLogging(argv[0]);  
  
google::SetLogDestination(google::INFO,"./myInfo_");  
  
LOG(INFO) << "This is a <Warn> log message..." << i; 



4. Log4cpp

 最新版1.0.x   2007-09-03

下载地址: http://sourceforge.net/projects/log4cpp/files

感觉 跟 log4cplus类似,结构稍简单些,不过代码也不少写。

#include <log4cpp/Category.hh>  
#include <log4cpp/PropertyConfigurator.hh>  
#include <log4cpp/NDC.hh>  
#include <log4cpp/FileAppender.hh>  
#include <log4cpp/BasicLayout.hh>  
log4cpp::Layout* layout = new log4cpp::BasicLayout();  
log4cpp::Appender* appender = new log4cpp::FileAppender("FileAppender", "./test_log4cpp1.log");  
appender->setLayout(layout);  
log4cpp::Category& warn_log = log4cpp::Category::getInstance("mywarn");  
warn_log.setAdditivity(false);  
warn_log.setAppender(appender);  
warn_log.setPriority(log4cpp::Priority::WARN);  
warn_log.critStream() << "This is a <Warn> log message..." << i; 


C++高效日志类(库) 前段时间在做毕业设计需要有一个功能模块是写日志,为了配合高性能服务器不拖延服务器的效率所以必须要写出一个十分高效确不太占用系统资源的日志类。 经过参考前辈们写的资料加上自己不断地研究改进,现在完成了一个C++高效日志的类。经过我本人的测试发现该类库可以在WINDOWS平台、多线程环境下出色完成写日志的任务,可以达到50M/S的日志输出量。同时做了日志切割,当日志文件大小达到设定值时自动切入下一个文件,并用日期加序列号命名。 其中用到了BOOST多线程的锁,没有安装BOOST的机器可以屏蔽BOOST的相关代码,但是在多线程执行时会出错。 立即下载

相关推荐

大模型训练(1):流水线并行

Gpipe的方法是,在训练时计算和运用的是micro-batch里的均值和方差,但同时持续追踪全部mini-batch的移动平均和方差,以便在测试阶段进行使用。流水线并行的核心思想是:在模型并行的基础上,进一步引入数据并行的办法,即把原先的数据再划分成若干个更小的batch,分批送入GPU进行训练,算一部分就让下一个GPU动起来。从实验结果可知,在关掉NVlinks的情况下,Gpipe一样也能实现随着GPU数量的增加,训练速度也增加的效果。前文说过,随着模型的增加,每块GPU中存储的中间结果也会越大。

呆呆象呆呆的博客 1970

开源日志库glog spdlog loguru plog Boost.Log log4cpp对比与选择

0开源日志库glog spdlog loguru plog Boost.Log log4cpp哪个稳定性更高 bug更少 根据前面对各个日志库的分析,可以大致判断这几个日志库的稳定性和bug数量: 1. glog:Google出品,历史悠久,代码质量高,稳定性好,bug较少。但功能较简单,更新较慢,新版本可能存在一定bug。总体来说,稳定性高,bug中等。 2. spdlog:开源社区活跃,测试覆盖广,bug修复快,稳定性和bug数量都好。功能适度,学习成本适中,是个不错的日志

jijie_ming的博客 3246

防反接电路、防倒灌电路、过流保护和ESP相关知识

1.开关电源给负载供电, 如果负载是电池或者其他感性负载(比如像 电机 有线圈 当电源突然断掉时 会产生感应电动势)时, 当220V断掉的时候,可能会出现 电池反向给开关电源 的 输出端 供电,导致开关电源的一些莫名损坏。2.系统在不同的 输出电压 之间 切换时,会存在高压电压倒灌到低压电压源中。例如:系统 有两个电源供电 比如 一个电池 一个 充电器 充电器的电压一般会高于电池 如果没有防倒灌的电路 可能充电器的电压会直接倒灌给电池 造成电池的损坏。

a_black_的博客 1万+

嵌入式应用的超轻量级、高性能的 C/C++ 日志库

EasyLogger 是一款超轻量级(ROM;1.6K, RAM;0.3K)、高性能的 C/C++ 日志库,非常适合对资源敏感的软件项目,例如: IoT 产品、可穿戴设备、智能家居等等。相比 log4c、zlog 这些知名的 C/C++ 日志库, EasyLogger 的功能更加简单,提供给用户的接口更少,但上手会很快,更多实用功能支持以插件形式进行动态扩展。

嵌入式基地 4068

matlab液体湿润模拟,【水文模型】01 三水源新安江模型

目录一、概述1.1 流域概况1.2 产流方式论证1.3 设计基本任务1.4 设计原始资料二、新安江模型2.1 流域划分2.2 产汇流计算2.2.1 蒸散发计算2.2.2 产流计算2.2.3 水源划分2.2.4 汇流计算2.3 模型参数2.3.1 参数物理意义2.3.2 参数率定结果2.4 模拟结果2.4.1 精度统计表2.4.2 计算与实测流量过程线比较三、精度统计与误差分析3.1 精度统计3.2...

weixin_34173656的博客 5327

在Windows11上安装ubuntu版linux系统并实现桌面图形化(WSL)

在Windows11上安装ubuntu版linux系统并实现桌面图形化(WSL),xfce桌面美化、安装google-chrome

NiKoJJ‘s Blog 1万+

C++: Log 日志系统(依赖库:Log4Cplus)

C++ Log 日志系统的设计与实现,推荐三方库 Log4cplus

belien 4693

用Python turtle库 绘制皮卡丘

Turtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x、纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而在它爬行的路径上绘制了图形。 turtle基础知识参考: https://gitchat.blog.youkuaiyun.com/article/details/90696190 https://blog.csdn.ne...

qq_36295856的博客 2万+

C++项目的开源日志库的选择

本文对主流C++开源日志库进行结构化对比和场景化选型分析。核心维度对比显示,spdlog和NanoLog性能最优(>1M条/秒),EasyLogger最轻量,log4cplus适合企业级管理。文章从异步机制、资源占用、企业级能力等特性进行解析,并给出场景化选型矩阵:高频服务端首选spdlog,嵌入式推荐zlog,金融系统适用log4cplus。风险规避部分指出需避免同步库在高频场景使用,警惕兼容性和维护问题。最后提供五步决策树,建议根据崩溃诊断、资源限制、性能需求等关键指标选择合适方案。

ziven的博客 1504

全覆盖路径规划开源项目Clean-robot-turtlebot3关键函数解析(上)

本系列文章主要介绍全覆盖路径规划开源项目Clean-robot-turtlebot3的相关内容,包含如下四篇文章,分别介绍了开源项目Clean-robot-turtlebot3流程的概括总结、ROS坐标系常用坐标及其变换、Clean-robot-turtlebot3关键函数解析等内容。

慕羽★的博客 2778

Cesium 场景特效之【全球海洋】GL2兼容版

Cesium 场景特效之【全球海洋】GL2兼容版

喜欢钻研前端和分享技术 1279

C++|开源日志库log4cpp和glog

如果需要高性能和高效的异步日志,可以选择spdlog或loguru。如果项目已经使用了BoostBoost.Log是一个非常合适的选择。如果需要更全面的功能,如日志分割、归档等,可以选择或。对于Qt项目,使用 Qt 自带的QDebug会是最方便的选择。如果需要一个轻量级的解决方案,MinLog或ZLog是不错的选择。根据你的需求(性能、功能、配置灵活性、平台支持等)来选择合适的日志库。

编程改变世界。想做一些改变世界的产品。感谢一键三连。 2204

特殊通信领域场景应用:基于Simulink的数字预失真(DPD)算法仿真建模示例

增益压缩:高功率输入时输出信号的增益下降。相位失真:输入信号的相位随功率变化而改变。带外干扰:非线性失真会引入额外的频谱分量,影响邻道信号。多项式模型:用多项式拟合功率放大器的非线性特性。查找表(LUT):通过离线训练生成预失真映射表。自适应算法:实时调整预失真参数以动态补偿失真。发送端:生成随机比特流并调制为射频信号。预失真模块:对输入信号进行预失真处理。功率放大器模块:模拟非线性失真。接收端:解调信号并评估误码率(BER)。

xiaoheshang_123的博客 274

C++开源日志库选择

每个系统都需要日志记录,通过日志方便排错调试,管理运行时的异常。 而C++开源的日志库,待选的有 glog、log4cplus、log4cpp、log4cxx 目前准备使用glog,使用方便,性能也不错,待进一步试验,如果有不能满足的功能就转用 log4cplus,功能很全面,不过稍复杂些。 其它两个都是三年前就没更新,没好感,暂不准备使用。 1.log4cplus

拥抱变化 1万+

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

C/C++程序员必须熟练应用的开源项目

来源: http://blog.youkuaiyun.com/langeldep/article/details/6293655  作为一个经验丰富的C/C++程序员, 肯定亲手写过各种功能的代码, 比如封装过数据库访问的类, 封装过网络通信的类,封装过日志操作的类, 封装过文件访问的类, 封装过UI界面库等, 也在实际的项目中应用过, 但是回过头仔细想想,其实以前自己写过的这些代码,只能是

毅修的专栏 623

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

【C++ 常见开源日志库】深入理解日志文件刷新机制:spdlog、glog 与 log4cplus 对比

日志是现代软件开发中不可或缺的一部分,它帮助我们追踪程序行为、诊断问题和监控系统状态。在选择日志库时,除了易用性和性能,理解其内部的日志刷新机制至关重要。日志刷新机制决定了日志信息从内存缓冲区到持久化存储(如文件)的速度和方式,这直接影响到日志的实时性、完整性和系统性能。

探索C++编程的奥秘,分享深入的技术见解和实践,旨在激发读者创造力与解决问题的思维。 1625

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Windows10中使用VS2022和Cmake编译构建C++开源日志库-spdlog

Windows10中VS2022中使用spdlog日志库

ccf19881030的专栏 4877

详解C++ 高性能日志库 spdlog

spdlog是一个高性能C++11日志库,提供极简API和丰富功能。主要特点包括:支持多线程安全、格式化灵活、异步日志(百万条/秒吞吐量)、多种输出目标(文件轮转、控制台、系统日志等)。安装简便,可通过包管理器或源码集成。核心功能涵盖日志级别管理、多记录器配置、自定义格式化、异步模式优化等。典型应用场景如同时输出控制台和文件日志,或构建高性能异步日志系统。其轻量级设计和活跃社区支持,使其成为C++项目日志管理的优选方案。

ziven的博客 1867

开源库和开源代码源码

linux下常用的开源库

GeiGe123的博客 388

C++的开源软件-记录

记录一些笔记本-传送门等信息

FZD的博客 601
上一篇: log4cplus总结
下一篇: Microsoft Visual Studio 2010下log4cplus的安装,集成,测试
Augusdi
博客等级 码龄19年 1万+粉丝 1016原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值