unubtu20.4安装log4j开源日志系统

本文档详细介绍了在Ubuntu 20.04上手动安装开源日志系统Log4cxx的步骤,包括安装依赖apr、apr-util和expat,解决编译错误,以及安装完成后在代码工程中配置Log4cxx和创建日志文件的示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SourceURL:file:///home/yuan/文档/unubtu安装log4cxx开源日志系统.docx

unubtu20.4安装log4cxx开源日志系统

1、首先需要安装apr

        APR(Apache portable Run-time libraries,Apache可移植运行库)的目的如其名称一样,主要为上层的应用程序提供一个可以跨越多操作系统平台使用的底层支持接口库。

详细的介绍请戳:什么是Apache APR - 走看看

apr和apr-util下载地址:http://archive.apache.org/dist/apr/

下载apr和apr-util,我这里下载的是apr-1.6.3和apr-util-1.6.1

下载好apr安装包并解压编译安装:

tar xzvf apr-1.6.3tar.gz
cd apr-1.6.3
./configure --prefix=/usr/local/lib/apr-1.6.3  #指定安装目录
sudo make
sudo make install 

2、安装apr-util

下载好apr-util安装包并解压编译安装:

tar -zxf apr-util-1.6.1.tar.gz
cd apr-util-1.6.1/
./configure  --prefix=/usr/local/lib/apr-util-1.6.1 --with-apr=/usr/local/lib/apr-1.6.3 #指定安装目录并配置apr的安装路径
sudo make
sudo make install 

#注意:make的时候可能会报错,原因是缺少系统库。

解决办法:ubunt下使用sudo apt-get install expat-devel,但是可能还是会报错

所以我直接下载的源码编译安装的。

直接去官网下载expat库源码https://sourceforge.net/projects/expat/ 

我这里是expat-2.5.0

下载后解压编译安装:

tar -xvf expat-2.5.0.tar.xz && chmod 777 -R expat-2.5.0
cd expat-2.5.0
./configure
sudo make
sudo make install 

接下来我们继续安装apr-util;回到apr-util-1.6.1目录并执行

sudo make clean
sudo make 
sudo make install

此时以已经可以顺利安装。

3、安装log4j

下载路径https://archive.apache.org/dist/logging/log4cxx/0.11.0/

我这里下载的是apache-log4cxx-0.11.0版本,下载后解压编译安装:

tar -xvf apache-log4cxx-0.11.0.tar.gz
cd apache-log4cxx-0.11.0
./configure --prefix=/usr/local/log4c-0.11.0 --with-apr=/usr/local/lib/apr-1.6.3 --with-apr-util=/usr/local/lib/apr-util-1.6.1 #分别为设置apr和apr-util的连接路径
sudo make
sudo make install

#make (这一步可能会出问题!!!)

解决log4j make时的问题:

3.1下载安装automake-1.16

链接地址:http://ftp.gnu.org/gnu/automake/

选择 automake-1.16.tar.gz  版本

下载后解压缩,进入目录

tar -xvf automake-1.16.tar.gz
cd automake-1.16
./configure  
make
sudo make install

安装完成 1.16版本的automake

3.2下载安装libtool 2.4.6

链接地址:http://www.gnu.org/software/libtool/

下载后解压缩,进入目录编译安装

tar -xvf libtool-2.4.6.tar.gz
cd libtool-2.4.6
./configure
make
sudo make install

安装完成 2.4.6版本的libtool

4继续安装log4j

        安装完上述两个依赖之后,再回到apache-log4cxx-0.11.0目录继续安装,可能依然存在报错,提示缺少某些apr库:

        首先创建一个提示的目录文件目录,然后我们将安装的apr目录下的库移动到提示的文件夹下面

#如果编译还提示缺少其他库,也也一并拷贝到提示的目录下面

如果提示缺少cmplie 可以根据提示执行

        automake --add-missing

执行

        sudo make clean

        sudo make

        sudo make install

此时可以可以看到log4j安装成功。

5、代码工程配置log4j

        安装目录下会有一个include和lib文件夹,分别是log4j的头文件和相应的库文件,将其拷贝到代码工程目录下。并在代码cmakelist配置相关的头文件和log4cxxx库。

#具体在代码工程的路径可以自行配置

  创建一个log4cxx.properties,文件用来配置日志参数,参数配置配置的解释请戳【转】日志记录库(log4cxx)使用指南_sinolover的博客-CSDN博客_log4cxx使用

#设置rootlogger为DEBUG级别
log4j.logger.test=DEBUG,test
log4j.logger.demo=DEBUG,demo
log4j.additivity.file=false

#test.log
log4j.appender.test=org.apache.log4j.RollingFileAppender
log4j.appender.test.Threshold=INFO
log4j.appender.test.ImmediateFlush=true
log4j.appender.test.Append=true
log4j.appender.test.File=./test.log
log4j.appender.test.MaxFileSize=200KB
log4j.appender.test.MaxBackupIndex=3
log4j.appender.test.layout=org.apache.log4j.PatternLayout
log4j.appender.test.layout.ConversionPattern=%d(%r)-->[%t]%l[%-5p]: %m %x %n
 
#demo.log
log4j.appender.demo=org.apache.log4j.RollingFileAppender
log4j.appender.demo.Threshold=INFO
log4j.appender.demo.ImmediateFlush=true
log4j.appender.demo.Append=true
log4j.appender.demo.File=./demo.log
log4j.appender.demo.MaxFileSize=200KB
log4j.appender.demo.MaxBackupIndex=3
log4j.appender.demo.layout=org.apache.log4j.PatternLayout
log4j.appender.demo.layout.ConversionPattern=%d(%r)-->[%t] %l[%-5p]: %m %x %n

编写测试demo:

#include<iostream>
#include<stdio.h>
#include<demo1.h>
#include <log4cxx/logger.h> 
#include <log4cxx/helpers/object.h> 
#include <log4cxx/helpers/pool.h> 
#include <log4cxx/basicconfigurator.h> 
#include <log4cxx/patternlayout.h> 
#include <log4cxx/dailyrollingfileappender.h>
#include <log4cxx/propertyconfigurator.h>

using namespace std;
using namespace log4cxx;
using namespace log4cxx::helpers;
 

int main()
{
    PropertyConfigurator::configure("../log4cxx.properties");
    LoggerPtr logger_test(Logger::getLogger("test"));
    LoggerPtr logger_demo(Logger::getLogger("demo"));
    
    for (int i = 0; i < 10; i++)
    {
        LOG4CXX_INFO(logger_test,"test logger_test_INFO log4cxxxx success,testLogger ");
        LOG4CXX_INFO(logger_demo,"test logger_demo_INFO log4cxxxx success,demoLogger ");
    }
    for (int i = 0; i < 10; i++)
    {
        LOG4CXX_ERROR(logger_test,"test logger_test_ERROR log4cxxxx success,testLogger ");
        LOG4CXX_ERROR(logger_demo,"test logger_demo_ERROR log4cxxxx success,demoLogger ");
    }

    return 0;
}

编译代码,执行文件,可以看到两个日至文件已生成:

注:

可以看到手动编译安装组件虽然麻烦点,但是主要是麻烦在找依赖项上。安装的过程其实都是大同小异。基本都是如下三部曲:

configure 检查编译环境并设置安装路径;

make 对源代码进行编译;

make insall 将生成的可执行文件安装到当前计算机中

  可以发现configure的很多参数也是高度相似的,我感觉其中需要重点注意的是目标路径--prefix。在不了解可选参数时,也可以通过./configure -h来查看

参考:

log4cxx(2)-使用实战_MetaSmiles的博客-CSDN博客_log4cxx rollingfileappender

log4cxx(1)-安装与入门_MetaSmiles的博客-CSDN博客_log4cxx安装

Linux安装log4cxx、测试。亲测安装成功,附带截图。__| ̄|_| ̄|____的博客-CSDN博客_log4cxx 0.11.0下载

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值