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下载