安装

yum安装

直接使用yum安装log4cxx.x86_64(库文件) log4cxx-devel.x86_64(头文件)

yum install log4cxx.x86_64       # 库文件
yum install log4cxx-devel.x86_64 # 头文件

源码安装

log4cxx的编译依赖于apr和apr-util这两个组件。
从http://archive.apache.org/dist/apr/下载这两个依赖组件的源码包。
从https://logging.apache.org/log4cxx/latest_stable/download.html下载log4cxx源码包。
附apr(Apache Portable Runtime)官网。

# 编译安装apr
tar -zxvf apr-1.5.2.tar.gz
cd apr-1.5.2
./configure --prefix=/usr/local
make
make install# 编译安装apr-util
tar -zxvf apr-util-1.5.4.tar.gz
cd apr-util-1.5.4
./configure --prefix=/usr/local --with-apr=/usr/local
make
make install# 编译安装log4cxx
tar -zxvf apache-log4cxx-0.10.0.tar.gz
cd apache-log4cxx-0.10.0
vim src/main/cpp/inputstreamreader.cpp  #增加#include<string.h>
vim src/main/cpp/socketoutputstream.cpp #增加#include<string.h>
vim src/examples/cpp/console.cpp        #增加#include<string.h>及#include <stdio.h>
./configure --prefix=/usr/local --with-charset=utf-8 --with-apr=/usr/local --with-apr-util=/usr/local
make
make install# 将log4cxx动态库所在文件夹加入搜索路径
vim ~/.bashrc
添加 export LD_LIBRARY_PATH=/usr/local/lib
source ~/.bashrc

编译apr-util遇到如下问题,可能缺expat的开发库,安装expat库试试:yum install expat-devel

xml/apr_xml.c:35:19: fatal error: expat.h: No such file or directory#include <expat.h>

示例

配置文件log4cxx.properties

#设置rootlogger为DEBUG级别,使用了ca和fa两个Appender
log4j.rootLogger=DEBUG,ca, fa#对Appenderfa进行设置:
#这是一个文件类型的Appender,
#其输出文件(File)为./output.log,
#输出方式(Append)为覆盖方式,
#输出格式(layout)为PatternLayout
log4j.appender.fa=org.apache.log4j.FileAppender
log4j.appender.fa.File=./output.log
log4j.appender.fa.Append=false
log4j.appender.fa.layout=org.apache.log4j.PatternLayout
log4j.appender.fa.layout.ConversionPattern=%d[%t] %-5p %.16c - %m%n#对Appenderca进行设置:
#这是一个控制台类型的Appender
#输出格式(layout)为PatternLayout
log4j.appender.ca=org.apache.log4j.ConsoleAppender
log4j.appender.ca.layout=org.apache.log4j.PatternLayout
log4j.appender.ca.layout.ConversionPattern=%d[%t] %-5p %.16c - %m%n

示例代码main.cpp

#include <log4cxx/logger.h>
#include <log4cxx/logstring.h>
#include <log4cxx/propertyconfigurator.h>using namespace log4cxx;int main()
{PropertyConfigurator::configure("./log4cxx.properties");LoggerPtr rootLogger = Logger::getRootLogger();LOG4CXX_TRACE(rootLogger,"TRACE");LOG4CXX_DEBUG(rootLogger, "DEBUG");LOG4CXX_WARN(rootLogger, "WARN");LOG4CXX_ERROR(rootLogger, "ERROR");return 0;
}

编译执行

# 编译
g++ -o main main.cpp -llog4cxx
# 执行
./main
# 输出
2018-06-10 15:52:08,610[0x7f5d68bf6880] DEBUG root - DEBUG
2018-06-10 15:52:08,610[0x7f5d68bf6880] WARN  root - WARN
2018-06-10 15:52:08,610[0x7f5d68bf6880] ERROR root - ERROR

C++日志系统log4cxx相关推荐

  1. C++日志系统log4cxx使用总结

    本文主要从log4cxx级别.layout.格式化.命名规则.Filter几个方面介绍. 一.log4cxx命名规则 Logger由一个String类的名字识别,logger的名字是大小写敏感的,且名 ...

  2. [转]C++日志系统log4cxx使用总结

    原文出处: http://blog.sina.com.cn/s/blog_a459dcf501013mr1.html 本文主要从log4cxx级别.layout.格式化.命名规则.Filter几个方面 ...

  3. ROS日志系统部分设置

    ROS日志系统部分设置 ROS日志设置 环境变量 ROS_LOG_DIR 环境变量 ROS_HOME 环境变量 ROSCONSOLE_FORMAT环境变量 ROSCONSOLE_CONFIG_FILE ...

  4. linux 任务计划 权限设置,Linux系统 文件权限+计划任务+日志系统

    实验目的:熟练掌握权限相关概念和具体操作 实验环境:Red Hat Enterprise Linux Server 5.3 实验步骤: 一.文件权限 二.计划任务 三.日志 一.文件权限 (一)基本权 ...

  5. 日志系统新贵Loki,确实比笨重的ELK轻

    来自:CSDN(作者:linkt1234) 原文链接: https://blog.csdn.net/Linkthaha/article/details/100575278 最近,在对公司容器云的日志方 ...

  6. cx_oracle写日志信息_日志系统的设计

    笔者在写作本章节的时候,并不敢把此章节的标题叫做<高性能日志系统的设计>,之所以不敢加上"高性能"三个字的原因是: 第一,我对于日志系统设计知识和经验都来自于学习和工作 ...

  7. 抛弃ELK!Loki日志系统详解!

    背景 最近,在对公司容器云的日志方案进行设计的时候,发现主流的ELK或者EFK比较重,再加上现阶段对于ES复杂的搜索功能很多都用不上最终选择了Grafana开源的Loki日志系统,下面介绍下Loki的 ...

  8. 百亿级日志系统架构设计及优化

    作者:杨津萍,大数据架构师,从业十余年,专攻 Web 架构及大数据架构. 来自:51cto技术栈(ID:blog51cto) " 日志数据是最常见的一种海量数据,以拥有大量用户群体的电商平台 ...

  9. PHP框架中的日志系统

    引言 接触过php框架的朋友们可能都知道,日志在项目中的重要作用了,他可以帮助我们定位错误的位置,让程序更友好(处理得当的话不会直接抛出一大堆只有程序猿才真正动的英文),调试的时候也会很方便,还可以记 ...

最新文章

  1. ZooKeeper 源码和实践揭秘
  2. 2018-2019-2 20165315《网络攻防技术》Exp6 信息搜集与漏洞扫描
  3. nginx编译安装,nginx静态资源访问和负载均衡的使用!
  4. 满纸荒唐言,一把辛酸泪--红楼一梦
  5. LiveVideoStack线上交流分享 ( 一 ) —— 解密GPU:视频转码与分析加速
  6. 26条C++的经典语录,哪几句戳中你的心!
  7. spring live上有个入门的整合SSH的例子
  8. jQuery 文本编辑器插件 HtmlBox 使用
  9. 脚本录制软件python 按键精灵 tc_Keymouse Go鼠标键盘脚本录制下载|开源版按键精灵软件_最火软件站...
  10. 无源晶振负载电容值CL匹配方法及说明
  11. 自学编程的难度如何?
  12. ACP报名考试有学历限制吗?
  13. Premiere Pro之字幕添加(三)
  14. 关于win10主机共享打印机,其他主机连接不上的解决方法①
  15. 信息中心网络ICN在卫星通信中的应用调研
  16. 中国地区的手机号正则表达式
  17. 侧信道攻击:SPA / DPA
  18. 面试 -- 字节跳动(视频面)
  19. XP硬盘安装Ubuntu 10.10系统
  20. [文萃画材·油画]芭蕾舞女梦幻而绝美

热门文章

  1. background多背景
  2. 阿里巴巴字体图标的使用
  3. 某计算机采用lcd显示器 玩大型游戏,[1]. 液晶显示器(LCD)作为计算机的一种图文输出设备,已逐渐普及,下列关于液晶显示器的叙述中错误的是_______。...
  4. 生成式对抗网络(GAN)-(Generative Adversarial Networks)算法总结(从原始GAN到....目前)
  5. 【杰理AC696X】MIC能量采集的三种方式
  6. CAD碎片化学习教程 @3. 设置当前字体
  7. 中国移动互联网第一次大战盘点:360让别人不赚钱的能力很强
  8. Android代理模式(静态代理,动态代理,Retrofit代理模式分析)
  9. TCP连接,三次握手问题
  10. 关于Trunk封装的协议和模式。如何配置trunk