1 windows环境

1.1创建一个日志模板

staticbool bFirst = true;

Logger_logger = Logger::getInstance(LOG4CPLUS_TEXT("thriftserver"));

if(bFirst)

{

SharedAppenderPtr_append(new RollingFileAppender(LOG4CPLUS_TEXT("thriftserver.log"),300 * 1024, 20));

auto_ptr<Layout>pPatternLayout(new PatternLayout("%D- %m [%l]%n"));

_append->setLayout(pPatternLayout);

_append->setName(LOG4CPLUS_TEXT("thriftserver"));

_logger.addAppender(_append);

bFirst= false;

}

return _logger;

1.2 日志携带时间戳

auto_ptr<Layout> pPatternLayout(newPatternLayout("%d- %m [%l]%n"));

显示的是格林威治的时间

auto_ptr<Layout> pPatternLayout(newPatternLayout("%D- %m [%l]%n"));

显示的是本地的时间

1.3 使用例子

#include <log4cplus/loggingmacros.h>

#include <log4cplus/logger.h>

#include <log4cplus/fileappender.h>

#define LOGGERTAGLogger::getInstance(LOG4CPLUS_TEXT("thriftserver"))

log4cplus::LoggerStartSetupThrfitServerLog();

//在程序运行的时候创建日志文件,调用该函数

log4cplus::Logger StartSetupThrfitServerLog()

{

staticbool bFirst = true;

Logger_logger = Logger::getInstance(LOG4CPLUS_TEXT("thriftserver"));

if(bFirst)

{

SharedAppenderPtr_append(new RollingFileAppender(LOG4CPLUS_TEXT("thriftserver.log"),300 * 1024, 20));

auto_ptr<Layout>pPatternLayout(new PatternLayout("%D- %m [%l]%n"));

_append->setLayout(pPatternLayout);

_append->setName(LOG4CPLUS_TEXT("thriftserver"));

_logger.addAppender(_append);

bFirst= false;

}

return _logger;

}

//写日志

LOG4CPLUS_ERROR(LOGGERTAG, "can notconnect remote host,ip:”<< ip);

2 Linux环境

log4cpp编译安装的路径是/opt/log4cpp

问题:如何正确引入动态库

1.修改/etc/ld.so.conf文件,将/opt/log4cpp/lib添加到文件末尾,该文件主要被ldconfig指令用来搜索可共享的动态链接库

2.执行ldconfig,根据修改的文件内容,创建出动态装入程序所需的连接和缓存文件,提供给系统动态库调用

手动:

g++ test.cpp -I/opt/log4cpp/include -L/opt/log4cpp/lib/ -llog4cpp-lpthread -o test

提示

test.cpp文件并没有依赖多线程库,但是log4cpp库依赖,所以必须在命令中指定,并且由于库的依赖次序:前面的库依赖后面的库,所以在log4cpp后面添加lpthread库。如果不知道需要添加哪些库依赖,可以参考/opt/log4cpp/bin/log4cp-config文件--libs --cflags输出,如下提供了如何在编译指令中添加log4cp-config的

例子:

g++ test.cpp`/opt/log4cpp/bin/log4cpp-config --libs --cflags` -o maintest

转载于:https://blog.51cto.com/fengyuzaitu/1978732

log4cpp 用法相关推荐

  1. log4cpp的配置

    转自 http://www.usidcbbs.com/simple/?t1514.html C++日志库,log4cplus,log4cpp使用资料手册 1 下载log4cpp并解压. 2 打开\lo ...

  2. c语言中external,static关键字用法

    static用法: 在C中,static主要定义全局静态变量.定义局部静态变量.定义静态函数. 1.定义全局静态变量:在全局变量前面加上关键字static,该全局变量变成了全局静态变量.全局静态变量有 ...

  3. Pandas_transform的用法

    先来看一个实例问题. 如下销售数据中展现了三笔订单,每笔订单买了多种商品,求每种商品销售额占该笔订单总金额的比例.例如第一条数据的最终结果为:235.83 / (235.83+232.32+107.9 ...

  4. Python中yield和yield from的用法

    yield 后面接的是 future 对象 调用方 委托生成器 yield from 直接给出循环后的结果 yield from 委托者和子生成器直接通信 yield from 直接处理stopIte ...

  5. pytorch学习 中 torch.squeeze() 和torch.unsqueeze()的用法

    squeeze的用法主要就是对数据的维度进行压缩或者解压. 先看torch.squeeze() 这个函数主要对数据的维度进行压缩,去掉维数为1的的维度,比如是一行或者一列这种,一个一行三列(1,3)的 ...

  6. python yield 和 yield from用法总结

    #例1. 简单输出斐波那契數列前 N 个数 #缺点:该函数可复用性较差,因为 fab 函数返回 None,其他函数无法获得该函数生成的数列 #要提高 fab 函数的可复用性,最好不要直接打印出数列,而 ...

  7. tf.nn.embedding_lookup()的用法

    函数: tf.nn.embedding_lookup( params, ids, partition_strategy='mod', name=None, validate_indices=True, ...

  8. OpenMP用法大全

    OpenMP基本概念 OpenMP是一种用于共享内存并行系统的多线程程序设计方案,支持的编程语言包括C.C++和Fortran.OpenMP提供了对并行算法的高层抽象描述,特别适合在多核CPU机器上的 ...

  9. Dorado用法与示例

    Dorado用法与示例 dorado用后总结 一.dorado概念 dorado的产品全名是"dorado展现中间件".从产品形态上dorado由两部分组成,第一部分是一个具有AJ ...

最新文章

  1. docker-registry的定制和性能分析
  2. 用来代替SQUID的软件VARNISH
  3. 解读:欧盟委员会2021年《人工智能法》提案
  4. 【黑金视频连载】FPGA NIOSII视频教程(12)--时间戳定时器实验
  5. gridview、datalist、repeater、FormView、DetailsView的区别详解
  6. mac怎么合并两个容器_看苹果表演黑魔法:macOS Catalina 文件和硬盘出现两个
  7. python 类的内置方法_Python 类的常用内置方法
  8. 继承Thread 创建多线程的简单实现
  9. clion编译器解决undefined reference to symbol ‘shm_open@@GLIBC_2.2.5‘
  10. ISA之三种客户端访问
  11. php文件读取文件内容,PHP文件系统函数-读取文件内容几种方式
  12. 又又叒更新,Win 12要来了?
  13. 猪场管理网站php,某养猪场网站整站 v1.1
  14. C 创建基本图表 Chart Controls
  15. 用神经网络例子讲解TF运行方式~人工智能入门编程例子讲解
  16. iPhone 11系列没5G又没创新 库克的回应听了真是让人没脾气...
  17. html5录音支持pc和Android、ios部分浏览器,微信也是支持的,JavaScript getUserMedia
  18. Base64编码对照表
  19. 使用 jsbarcode 生成条形码
  20. 一个函数叫random.sample

热门文章

  1. iOS10 Safari不识别viewport禁用缩放的暴力解决方案
  2. 解决html5中video标签无法播放mp4问题的办法
  3. 连接MYSQL数据库,报1130错误的解决方法
  4. 单点登录(SSO)解决方案之 CAS服务端数据源设置及页面改造
  5. 在Git中更改文件名的大小写
  6. 为什么setTimeout(fn,0)有时有用?
  7. 如何获取字符的ASCII值
  8. JavaScript中的“ new”关键字是什么?
  9. CSS Sprites在IE中不起作用[8/7/6]
  10. (clion 安装插件联网络失败,pycharm pip联网失败)当电脑选择拨号上网时,解决系统代理被篡改/pip提示“目标计算机积极拒绝,无法连接”的方法! [ 此方法绝对解决系统代理被篡改问题 ]