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

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 我个人的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 博文讲解之初始化


相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
20天前
|
存储 人工智能 编译器
【03】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-测试hello word效果-虚拟华为手机真机环境调试-为DevEco Studio编译器安装中文插件-测试写一个滑动块效果-介绍诸如ohos.ui等依赖库-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
【03】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-测试hello word效果-虚拟华为手机真机环境调试-为DevEco Studio编译器安装中文插件-测试写一个滑动块效果-介绍诸如ohos.ui等依赖库-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
44 10
【03】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-测试hello word效果-虚拟华为手机真机环境调试-为DevEco Studio编译器安装中文插件-测试写一个滑动块效果-介绍诸如ohos.ui等依赖库-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
|
25天前
|
缓存 Java 测试技术
【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
161 3
【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
|
4月前
|
机器学习/深度学习 人工智能 算法
BALROG:基准测试工具,用于评估 LLMs 和 VLMs 在复杂动态环境中的推理能力
BALROG 是一款用于评估大型语言模型(LLMs)和视觉语言模型(VLMs)在复杂动态环境中推理能力的基准测试工具。它通过一系列挑战性的游戏环境,如 NetHack,测试模型的规划、空间推理和探索能力。BALROG 提供了一个开放且细粒度的评估框架,推动了自主代理研究的进展。
96 3
BALROG:基准测试工具,用于评估 LLMs 和 VLMs 在复杂动态环境中的推理能力
|
4月前
|
缓存 Ubuntu Linux
Linux环境下测试服务器的DDR5内存性能
通过使用 `memtester`和 `sysbench`等工具,可以有效地测试Linux环境下服务器的DDR5内存性能。这些工具不仅可以评估内存的读写速度,还可以检测内存中的潜在问题,帮助确保系统的稳定性和性能。通过合理配置和使用这些工具,系统管理员可以深入了解服务器内存的性能状况,为系统优化提供数据支持。
173 4
|
4月前
|
机器学习/深度学习 自然语言处理 前端开发
前端神经网络入门:Brain.js - 详细介绍和对比不同的实现 - CNN、RNN、DNN、FFNN -无需准备环境打开浏览器即可测试运行-支持WebGPU加速
本文介绍了如何使用 JavaScript 神经网络库 **Brain.js** 实现不同类型的神经网络,包括前馈神经网络(FFNN)、深度神经网络(DNN)和循环神经网络(RNN)。通过简单的示例和代码,帮助前端开发者快速入门并理解神经网络的基本概念。文章还对比了各类神经网络的特点和适用场景,并简要介绍了卷积神经网络(CNN)的替代方案。
743 1
|
4月前
|
编解码 安全 Linux
网络空间安全之一个WH的超前沿全栈技术深入学习之路(10-2):保姆级别教会你如何搭建白帽黑客渗透测试系统环境Kali——Liinux-Debian:就怕你学成黑客啦!)作者——LJS
保姆级别教会你如何搭建白帽黑客渗透测试系统环境Kali以及常见的报错及对应解决方案、常用Kali功能简便化以及详解如何具体实现
|
5月前
|
Arthas 监控 Java
JVM知识体系学习七:了解JVM常用命令行参数、GC日志详解、调优三大方面(JVM规划和预调优、优化JVM环境、JVM运行出现的各种问题)、Arthas
这篇文章全面介绍了JVM的命令行参数、GC日志分析以及性能调优的各个方面,包括监控工具使用和实际案例分析。
261 3
|
5月前
|
分布式计算 Hadoop 大数据
大数据体系知识学习(一):PySpark和Hadoop环境的搭建与测试
这篇文章是关于大数据体系知识学习的,主要介绍了Apache Spark的基本概念、特点、组件,以及如何安装配置Java、PySpark和Hadoop环境。文章还提供了详细的安装步骤和测试代码,帮助读者搭建和测试大数据环境。
149 1
|
2月前
|
数据可视化 前端开发 测试技术
接口测试新选择:Postman替代方案全解析
在软件开发中,接口测试工具至关重要。Postman长期占据主导地位,但随着国产工具的崛起,越来越多开发者转向更适合中国市场的替代方案——Apifox。它不仅支持中英文切换、完全免费不限人数,还具备强大的可视化操作、自动生成文档和API调试功能,极大简化了开发流程。
|
1月前
|
JSON 前端开发 测试技术
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
98 10
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡

热门文章

最新文章