我个人的log4cplus-1.2.2的编译与测试使用,Win7+VS2013环境

简介: 我个人的log4cplus-1.2.2的编译与测试使用,Win7+VS2013环境

log4cplus源码下载:


https://sourceforge.net/projects/log4cplus/files/log4cplus-stable/


https://github.com/log4cplus/log4cplus


log4cplus官方示例:


https://sourceforge.net/p/log4cplus/wiki/CodeExamples/


一、编译库


解压出来后,log4cplus-1.2.2目录里面有个msvc10目录,是VS的编译平台,可以用vs2013打开,里面有很多项目。实际只要编译log4cplus或log4cplusS就行。一个是动态链接库,一个是静态链接库。根据默认的属性编译,顺利编译成功。


本人选择Unicode编码格式,分别编译出32位和64位的动态库和静态库。库的路径如下:


\Win32\bin.Debug_Unicode


\Win32\bin.Release_Unicode


\x64\bin.Debug_Unicode


\x64\bin.Release_Unicode



二、VS2013配置


工程-属性-C/C++/常规/附加包含目录:


..\log4cplus-1.2.2\include


工程-属性-链接器/常规/附加库目录:


32位:


..\log4cplus-1.2.2\lib\Win32\bin.Debug_Unicode


..\log4cplus-1.2.2\lib\Win32\bin.Release_Unicode


64位:


..\log4cplus-1.2.2\lib\x64\bin.Debug_Unicode


..\log4cplus-1.2.2\lib\x64\bin.Release_Unicode


工程-属性-链接器/输入/附加依赖项,本人使用动态库,不用静态库:


log4cplusUD.lib


log4cplusU.lib



三、配置文件logconfig.properties


#TRACE~FATAL各种级别的日志都输出到同一个目录中,可以通过调整log4cplus.rootLogger=DEBUG,APPNDER_FILE中的DEBUG为其它级别,进行日志过滤。
log4cplus.rootLogger=DEBUG,APPNDER_FILE
#设置日志追加到文件尾
log4cplus.appender.APPNDER_FILE=log4cplus::RollingFileAppender  
#设置日志文件大小
log4cplus.appender.APPNDER_FILE.MaxFileSize=100MB
#设置生成日志最大个数
log4cplus.appender.APPNDER_FILE.MaxBackupIndex=2
#设置输出日志路径
log4cplus.appender.APPNDER_FILE.File=log\test.log
log4cplus.appender.APPNDER_FILE.layout=log4cplus::PatternLayout
#设置日志打印格式
log4cplus.appender.APPNDER_FILE.layout.ConversionPattern=|%D:%d{%Q}|%p|%t|%l|%m|%n
#设置日志级别范围
log4cplus.appender.APPNDER_FILE.filters.1=log4cplus::spi::LogLevelRangeFilter
log4cplus.appender.APPNDER_FILE.filters.1.LogLevelMin=TRACE
log4cplus.appender.APPNDER_FILE.filters.1.LogLevelMax=FATAL
log4cplus.appender.APPNDER_FILE.filters.1.AcceptOnMatch=true
log4cplus.appender.APPNDER_FILE.filters.2=log4cplus::spi::DenyAllFilter


四、初始化与退出


log4cplus::Initializer创建了一个Initializer实例,这么做会对log4cplus内部进行初始化。如果不使用Initializer实例对logcplus进行初始化,程序不能正常工作至结束。这个类可以被实例化多次。Initializer类维护着一个引用计数器。当引用计数器为0,且最后的Initializer实例被销毁时,log4cplus的内部构件将会被停止工作。log4cplus被关停后,将无法再重新初始化。不管怎样,main函数退出后,我们无法继续使用log4cplus。

如何在C++类里面初始化log4cplus?log4cplus V1和V2版本有不同:


1、log4cplus V1.x


构造函数调用log4cplus::initialize(),析构函数调用log4cplus::Logger::shutdown();


CMyLoggerV1::CMyLoggerV1()
{
  log4cplus::initialize();
}
CMyLoggerV1::~CMyLoggerV1()
{
  log4cplus::Logger::shutdown();
}

2、log4cplus V2.x


定义成员变量即可。


class CMyLoggerV2
{
private:
  log4cplus::Initializer m_initializer;
}

五、VS2013+log4cplus 1.2.2完整的测试工程和库,请下载:


https://download.csdn.net/download/libaineu2004/11052189


VS2017+log4cplus 1.2.2+log4cplus 2.0.5完整的测试工程和库,请下载:


https://download.csdn.net/download/libaineu2004/12120914



------------------------------------------


参考文献


https://github.com/xiaodajiang/logcc 基于log4cplus封装的简单易用的c++日志库


https://blog.csdn.net/u014695839/article/details/84753599 博文讲解之Hello world程序


https://blog.csdn.net/calmreason/article/details/52025726 博文讲解之初始化


相关实践学习
通过日志服务实现云资源OSS的安全审计
本实验介绍如何通过日志服务实现云资源OSS的安全审计。
相关文章
|
9月前
|
监控 安全 测试技术
【01】卓伊凡收到冒充税务机关的诈骗程序-决定在沙盒Sandbox环境中运行测试下-广大企业同胞们注意防诈骗
【01】卓伊凡收到冒充税务机关的诈骗程序-决定在沙盒Sandbox环境中运行测试下-广大企业同胞们注意防诈骗
250 14
【01】卓伊凡收到冒充税务机关的诈骗程序-决定在沙盒Sandbox环境中运行测试下-广大企业同胞们注意防诈骗
|
7月前
|
机器学习/深度学习 存储 算法
强化学习算法基准测试:6种算法在多智能体环境中的表现实测
本文系统研究了多智能体强化学习的算法性能与评估框架,选用井字棋和连珠四子作为基准环境,对比分析Q-learning、蒙特卡洛、Sarsa等表格方法在对抗场景中的表现。实验表明,表格方法在小规模状态空间(如井字棋)中可有效学习策略,但在大规模状态空间(如连珠四子)中因泛化能力不足而失效,揭示了向函数逼近技术演进的必要性。研究构建了标准化评估流程,明确了不同算法的适用边界,为理解强化学习的可扩展性问题提供了实证支持与理论参考。
385 0
强化学习算法基准测试:6种算法在多智能体环境中的表现实测
|
12月前
|
存储 人工智能 编译器
【03】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-测试hello word效果-虚拟华为手机真机环境调试-为DevEco Studio编译器安装中文插件-测试写一个滑动块效果-介绍诸如ohos.ui等依赖库-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
【03】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-测试hello word效果-虚拟华为手机真机环境调试-为DevEco Studio编译器安装中文插件-测试写一个滑动块效果-介绍诸如ohos.ui等依赖库-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
824 11
【03】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-测试hello word效果-虚拟华为手机真机环境调试-为DevEco Studio编译器安装中文插件-测试写一个滑动块效果-介绍诸如ohos.ui等依赖库-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
|
12月前
|
缓存 Java 测试技术
【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
1739 3
【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
|
机器学习/深度学习 人工智能 算法
BALROG:基准测试工具,用于评估 LLMs 和 VLMs 在复杂动态环境中的推理能力
BALROG 是一款用于评估大型语言模型(LLMs)和视觉语言模型(VLMs)在复杂动态环境中推理能力的基准测试工具。它通过一系列挑战性的游戏环境,如 NetHack,测试模型的规划、空间推理和探索能力。BALROG 提供了一个开放且细粒度的评估框架,推动了自主代理研究的进展。
439 3
BALROG:基准测试工具,用于评估 LLMs 和 VLMs 在复杂动态环境中的推理能力
|
缓存 Ubuntu Linux
Linux环境下测试服务器的DDR5内存性能
通过使用 `memtester`和 `sysbench`等工具,可以有效地测试Linux环境下服务器的DDR5内存性能。这些工具不仅可以评估内存的读写速度,还可以检测内存中的潜在问题,帮助确保系统的稳定性和性能。通过合理配置和使用这些工具,系统管理员可以深入了解服务器内存的性能状况,为系统优化提供数据支持。
1257 4
|
机器学习/深度学习 自然语言处理 前端开发
前端神经网络入门:Brain.js - 详细介绍和对比不同的实现 - CNN、RNN、DNN、FFNN -无需准备环境打开浏览器即可测试运行-支持WebGPU加速
本文介绍了如何使用 JavaScript 神经网络库 **Brain.js** 实现不同类型的神经网络,包括前馈神经网络(FFNN)、深度神经网络(DNN)和循环神经网络(RNN)。通过简单的示例和代码,帮助前端开发者快速入门并理解神经网络的基本概念。文章还对比了各类神经网络的特点和适用场景,并简要介绍了卷积神经网络(CNN)的替代方案。
1973 1
|
数据可视化 前端开发 测试技术
接口测试新选择:Postman替代方案全解析
在软件开发中,接口测试工具至关重要。Postman长期占据主导地位,但随着国产工具的崛起,越来越多开发者转向更适合中国市场的替代方案——Apifox。它不仅支持中英文切换、完全免费不限人数,还具备强大的可视化操作、自动生成文档和API调试功能,极大简化了开发流程。
|
8月前
|
Java 测试技术 容器
Jmeter工具使用:HTTP接口性能测试实战
希望这篇文章能够帮助你初步理解如何使用JMeter进行HTTP接口性能测试,有兴趣的话,你可以研究更多关于JMeter的内容。记住,只有理解并掌握了这些工具,你才能充分利用它们发挥其应有的价值。+
1241 23
|
10月前
|
SQL 安全 测试技术
2025接口测试全攻略:高并发、安全防护与六大工具实战指南
本文探讨高并发稳定性验证、安全防护实战及六大工具(Postman、RunnerGo、Apipost、JMeter、SoapUI、Fiddler)选型指南,助力构建未来接口测试体系。接口测试旨在验证数据传输、参数合法性、错误处理能力及性能安全性,其重要性体现在早期发现问题、保障系统稳定和支撑持续集成。常用方法包括功能、性能、安全性及兼容性测试,典型场景涵盖前后端分离开发、第三方服务集成与数据一致性检查。选择合适的工具需综合考虑需求与团队协作等因素。
1623 24