linux下编译和安装log4cxx,RedHat如何安装log4cxx日志库

article/2025/9/19 20:20:57

log4cxx日志库是一种动态库,用于记录c++的日志,那么RedHat系统下要如何安装log4cxx日志库呢?下面小编就给大家介绍下RedHat安装log4cxx日志库的步骤,感兴趣的朋友不妨来了解下吧。

8ae4f675985fc966a02dd8d968fc9775.png

首先,我得到信息,安装这个库一共需要三个软件

apr-1.4.6.tar.gz

apr-util-1.4.1.tar.gz

apache-log4cxx-0.10.0.tar.gz

安装顺序是从上到下的,为什么,因为后者的安装依赖前者。

我整理了一下思路,有如下几个问题:

1.安装log4cxx库到哪个目录?

2.安装好之后怎么用?

我首先想到的是网上查资料,结果很多结果都显示:

1.针对问题1,99%的都安装在/usr/local目录下(我的权限是普通用户,安装在/usr/local目录下需要root权限,我顿时打了个寒战,万一我安装错了,服务器暴了怎么办)

2.针对问题2,因为99%的都是安装在/usr/local目录下,结果就是随便提供一个测试程序,直接来g++ test.cpp 其他简单参数

我想了又想,最终按照第一步做了(在此之前我向领导要了管理员权限),安装好后,没什么问题,不过,接下来,在进行写程序测试的时候,关于log4cxx库的文件都找不到,我崩溃了,这和网上说的不一样啊。

步骤:

1.把三个压缩包放置到一个你喜欢的目录下,比如/home/mac/log4cxx这个目录下

2.在/home/mac/log4cxx目录下解压三个压缩包得到三个文件夹(解压缩命令tar zxvf 你的目标)

3.在/home/mac/log4cxx目录下新建三个文件夹apr apr-util log4cxx作为三个包的安装目录(执行make install时的安装目录)

4.首先进入apr-1.4.6目录执行。/configure --prefix=/home/mac/log4cxx/apr配置apr包的安装目录为/home/mac/log4cxx/apr

5.执行make

6.执行make install

7.进入apr-util-1.4.1目录执行。/configure --prefix=/home/mac/log4cxx/apr-util --with-apr=/home/mac/log4cxx/apr意义和上面一步一样,不过多了个依赖关系

8.执行make

9.执行make install

10.进入apache-log4cxx-0.10.0目录执行。/configure --prefix=/home/mac/log4cxx/log4cxx --with-apr=/home/mac/log4cxx/apr --with-apr-util=/home/mac/log4cxx/apr-util意义和上面一步一样,依赖关系又体现了

11.执行make

12.执行make install

13.此时使用命令ls 浏览新建的三个文件夹apr apr-util log4cxx,会发现里面有一些include啊,lib啊之类的文件夹

14.因为测试程序要用到log4cxx的库文件,所以还需要一步。执行vi /home/mac/.bashrc 在里面添加两句

LD_LIBRARY_PATH=/home/mac/log4cxx/log4cxx/lib

export LD_LIBRARY_PATH 然后保存

15.执行source /home/mac/.bashrc使刚刚做的变动生效

16.编写一个测试程序main.cpp

#include #include #include int main(int argc, char* argv[]) { using namespace log4cxx; // 读取配置文件 PropertyConfigurator::configure(“conf.log”); // 建立两个logger LoggerPtr logger1 = Logger::getLogger(“TraceYourMama”); LoggerPtr logger2 = Logger::getLogger(“Patch”); LOG4CXX_TRACE(logger1, “跟踪”); LOG4CXX_WARN(logger1, “警告”); LOG4CXX_DEBUG(logger1, “调试”); LOG4CXX_ASSERT(logger1, false, “断言”); LOG4CXX_FATAL(logger1, “致命”); LOG4CXX_TRACE(logger2, “跟踪”); LOG4CXX_ERROR(logger2, “错误”); return 0;}

17.编写文件conf.log这个log4cxx配置文件

log4j.rootLogger=TRACE, stdout,logfilelog4j.appender.stdout=org.apache.log4j.Console

Appenderlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appe

nder.stdout.layout.ConversionPattern=%d [%t] %-5p %c - %mnlog4j.app ender.l ogfile=

org.apache.log4j.RollingFileAppenderlog4j.appender.logfile.File=。

/ZW.loglog4j.appender.logfile.MaxFileSize=100KBlog4j.appender.logfile.MaxBackupIndex=

10log4j.appender.logfile.layout=org.apache.log4j.PatternLayoutlog4j.appender.logfile.layout.

ConversionPattern=%d [%t] %-5p %c - %m%

18.执行g++ -I/home/mac/log4cxx/log4cxx/include -L/home/mac/log4cxx/log4cxx/lib -llog4cxx main.cpp

19.会生成a.out文件

20.执行。/a.out 终端输出

2014-07-21 23:14:06,735 [0xb7fe4700] TRACE TraceYourMama - trace2014-07-21 23:14:06,736 [0xb7fe4700] WARNTraceYourMama - warn2014-07-21 23:14:06,736 [0xb7fe4700] DEBUG TraceYourMama - debug2014-07-21 23:14:06,736 [0xb7fe4700] ERROR TraceYourMama - assert2014-07-21 23:14:06,736 [0xb7fe4700] FATAL TraceYourMama - fatal2014-07-21 23:14:06,736 [0xb7fe4700] TRACE Patch - trace2014-07-21 23:14:06,736 [0xb7fe4700] ERROR Patch - error

同时,当前目录下也会有后缀名为log的文件产生

再来从头回答那两个问题

1.随你安装在哪个目录,是要gcc的时候指定好正确路径就行了

2.还是gcc的 -I -L -i的参数运用值得深究

好了,到目前为止,终于让这个库起作用了,下一步就是分析如何配置这个库。

上面就是RedHat安装log4cxx日志库的介绍了,本文只介绍了log4cxx日志库的安装方法,安装后要记得配置后再使用。


http://chatgpt.dhexx.cn/article/QXaTBegB.shtml

相关文章

AT24Cxx读写全面理解

AT24Cxx - 电可擦可写E2PROM 芯片介绍 基础介绍\引脚介绍 AT24Cxx系列EEPROM是由美国Mcrochip公司出品,1-512K位的支持I2C总线数据传送协议的串行CMOS E2PROM,可用电擦除,可编程自定时写周期(包括自动擦除时间不超过10ms&#…

mongodb-cxx-driver使用

mongocxx driver 是构建在 MongoDB C driver 之上的 1.首先需要安装mongo-c-driver wget https://github.com/mongodb/mongo-c-driver/releases/download/ 1.23.1/mongo-c-driver-1.23.1.tar.gz tar xzf mongo-c-driver-1.23.1.tar.gz cd mongo-c-driver-1.23.1 mkdir cmak…

老胡的周刊(第095期)

老胡的信息周刊[1],记录这周我看到的有价值的信息,主要针对计算机领域,内容主题极大程度被我个人喜好主导。这个项目核心目的在于记录让自己有印象的信息做一个留存以及共享。 🎯 项目 tabby[2] 自托管的 AI 编码助手,…

程序员养生指北

吴小胖第八次推送 阅读时间预计3分钟~ 熬夜篇 互联网人熬夜是不能避免的,原因却各不相同。 不加班的时候,总会对自己说,今天一定早睡,然鹅... 午休篇 熬夜的程序员总想依靠午休补觉,然鹅... 更不幸的是,互联…

老杨说运维 | 中国IT运维市场的现状与趋势

文章内容来源《第一新声》 对擎创科技CEO杨辰(老杨)的专访 前言: 中国目前正面临百年未有之大变局,在这个变局中,不稳定性和不确定性正在增强。疫情持续反复、国际形势变化多端,导致国内多个行业出现发展增速下降、产供销节奏打…

老杨说运维 | 非常重要,事关转型

《荀子》有云:“水能载舟,亦能覆舟。”在公司日常运营过程中,数据指标就像是水,孕育着生命,承载着万物。科学的数据指标能指引公司在正确的道路上不断前进,使平淡无常的业务焕发新生,而不合理的…

学习springcloud的一些心得体会——老卫的天气预报系统

1:建立天气预报springboot系统 首先先建立一个天气预报的springboot系统,具体流程如下: (1)从cityList.xml中获取城市信息, (2)然后根据下面的链接获取各个城市的天气预报信息&am…

学习springboot项目的一些心得-----老卫的博客系统

去年年底接触了springboot框架,这两天复习了一遍,主要是跟着老卫博客系统这个课程学习的。 springboot介绍:总的感觉springboot就是基于spring开发的一套框架,好处就是不用配置复杂的依赖包,xml的一些文件&#xff0c…

thymeleaf和spring boot的集成踩坑总结(练习项目是老卫的博客项目)

bug1: 2019-08-08 16:44:38.102 ERROR 19810 — [nio-8080-exec-8] org.thymeleaf.TemplateEngine : [THYMELEAF][http-nio-8080-exec-8] Exception processing template “users/list”: Error resolving template “users/list”, template might not exist or might not be …

《跟老卫学 HarmonyOS 开发》:以父之名・码力全开!写段 HarmonyOS 祝父亲节

#父亲节祝福语# 爸爸在我心中就像旗帜 他教会我做人与处事的方向 在父亲节这个特别的日子里 我想对爸爸说长大以后我就要成为您 使用ArkUI开发“父亲节的祝福” 使用ArkUI开发“父亲节的祝福”,效果如下: 使用DevEco Studio整体开发HarmonyOS整体时…

【老卫搞机】090期:键盘?主机?全功能键盘主机!

这是一台我个人DIY的第二代键盘主机(第一代见:【老卫搞机】074期:键盘?主机?键盘主机!_哔哩哔哩_bilibili)。相比与第一代的作品,第二代产品除了USB 3接口、USB 2接口、mini HDMI接口…

【老卫拆书】009期:Vue+Node肩挑全栈!《Node.js+Express+MongoDB+Vue.js全栈开发实战》开箱

今天刚拿到一本新书,叫做《Node.jsExpressMongoDBVue.js全栈开发实战》,做个开箱。 外观 先从外观上讲,这本是全新的未开封的,膜还在。 这本书介绍从技术原理到整合开发实战,以丰富的项目展现全栈开发的一个技巧。 …

【老卫搬砖】034期:HarmonyOS 3.1 Beta 1初体验,我在本地模拟器里面刷短视频

今天啊打开这个DevEco Studio的话,已经提示有3.1Beta1版本的一个更新啊。然后看一下它的一些特性。本文也演示了如何在本地模拟器里面运行HarmonyOS版短视频。 主要特性 新特性包括: Added support for Windows 11 64-bit and macOS 13.x OSs, as well…

【老卫搞机】135期:华为开发者联盟社区2022年牛人之星奖品开箱!

首先祝大家兔年大吉,身体安康,钱兔似锦!今天咱们来开箱一件特殊的奖品,来自华为开发者联盟社区的新年祝福——2022年牛人之星。 华为有钱!惯例用的是顺丰快递,各位看一下这里面是有很多件的 有这两件。第一…

【老卫搞机】136期:华为开发者联盟社区2022年度战码先锋2期开源贡献之星

首先祝大家兔年大吉,身体安康,钱兔似锦!接上次的“2022年牛人之星”( https://developer.huawei.com/consumer/cn/forum/topic/0203109930647268095),今天咱们来开箱另外一件特殊的奖品,来自华为…

老卫带你学---SVM支持向量机

老卫带你学—SVM支持向量机 学习目标: 理解支持向量机的知识结构理解支持向量机的原理与目标理解算法推导的核心过程和意义(关键是损失函数与约束条件的意义)理解核函数的意义与方法 知识结构 hard margin SVM:可以容易的找到…

老卫带你学---推荐系统

机器学习的一种重要应用就是推荐系统。 比如我们的淘宝推荐,豆瓣推荐,优酷电影推荐等等都用到了推荐系统。 那我们来谈一谈推荐系统的细节。 推荐系统评价指标 要了解推荐系统,先了解其评价指标。 1.准确度 precisionTP/TPFP; recallTP/TP…

老卫带你学---最大熵模型与EM算法

最大熵模型与EM算法 最大熵模型与EM算法在机器学习里面尤为重要。接下来我们一步一步的介绍相关细节: 先验概率与后验概率 后验概率就是通过已有的数据来推断未知的数据,先验概率就是直接对未知的数据进行预测。 所以,我们机器学习的目标就…

SQL创建数据库提示“无法获得数据库 ‘model‘ 上的排他锁。请稍后重试该操作”处理方法

use master --选择数据库 go declare sql varchar(100) while 11 begin select top 1 sql kill cast(spid as varchar(3)) from master..sysprocesses where spid > 50 and spid <> spid and dbid db_id(model)if rowcount 0 break ;print(sql) --打印杀掉进…

SQL Server 数据库创建与删除

目录 &#xff08;一&#xff09;前言 &#xff08;二&#xff09;创建数据库方式 1. 数据库创建方式一 SSMS 方式 &#xff08;1&#xff09; 点击新建数据库想选项 &#xff08;2&#xff09; 新建数据库页面配置 2. 数据库创建方式二 T-SQL 方式 &#xff08;三&…