log4cpp 用法
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 用法相关推荐
- log4cpp的配置
转自 http://www.usidcbbs.com/simple/?t1514.html C++日志库,log4cplus,log4cpp使用资料手册 1 下载log4cpp并解压. 2 打开\lo ...
- c语言中external,static关键字用法
static用法: 在C中,static主要定义全局静态变量.定义局部静态变量.定义静态函数. 1.定义全局静态变量:在全局变量前面加上关键字static,该全局变量变成了全局静态变量.全局静态变量有 ...
- Pandas_transform的用法
先来看一个实例问题. 如下销售数据中展现了三笔订单,每笔订单买了多种商品,求每种商品销售额占该笔订单总金额的比例.例如第一条数据的最终结果为:235.83 / (235.83+232.32+107.9 ...
- Python中yield和yield from的用法
yield 后面接的是 future 对象 调用方 委托生成器 yield from 直接给出循环后的结果 yield from 委托者和子生成器直接通信 yield from 直接处理stopIte ...
- pytorch学习 中 torch.squeeze() 和torch.unsqueeze()的用法
squeeze的用法主要就是对数据的维度进行压缩或者解压. 先看torch.squeeze() 这个函数主要对数据的维度进行压缩,去掉维数为1的的维度,比如是一行或者一列这种,一个一行三列(1,3)的 ...
- python yield 和 yield from用法总结
#例1. 简单输出斐波那契數列前 N 个数 #缺点:该函数可复用性较差,因为 fab 函数返回 None,其他函数无法获得该函数生成的数列 #要提高 fab 函数的可复用性,最好不要直接打印出数列,而 ...
- tf.nn.embedding_lookup()的用法
函数: tf.nn.embedding_lookup( params, ids, partition_strategy='mod', name=None, validate_indices=True, ...
- OpenMP用法大全
OpenMP基本概念 OpenMP是一种用于共享内存并行系统的多线程程序设计方案,支持的编程语言包括C.C++和Fortran.OpenMP提供了对并行算法的高层抽象描述,特别适合在多核CPU机器上的 ...
- Dorado用法与示例
Dorado用法与示例 dorado用后总结 一.dorado概念 dorado的产品全名是"dorado展现中间件".从产品形态上dorado由两部分组成,第一部分是一个具有AJ ...
最新文章
- docker-registry的定制和性能分析
- 用来代替SQUID的软件VARNISH
- 解读:欧盟委员会2021年《人工智能法》提案
- 【黑金视频连载】FPGA NIOSII视频教程(12)--时间戳定时器实验
- gridview、datalist、repeater、FormView、DetailsView的区别详解
- mac怎么合并两个容器_看苹果表演黑魔法:macOS Catalina 文件和硬盘出现两个
- python 类的内置方法_Python 类的常用内置方法
- 继承Thread 创建多线程的简单实现
- clion编译器解决undefined reference to symbol ‘shm_open@@GLIBC_2.2.5‘
- ISA之三种客户端访问
- php文件读取文件内容,PHP文件系统函数-读取文件内容几种方式
- 又又叒更新,Win 12要来了?
- 猪场管理网站php,某养猪场网站整站 v1.1
- C 创建基本图表 Chart Controls
- 用神经网络例子讲解TF运行方式~人工智能入门编程例子讲解
- iPhone 11系列没5G又没创新 库克的回应听了真是让人没脾气...
- html5录音支持pc和Android、ios部分浏览器,微信也是支持的,JavaScript getUserMedia
- Base64编码对照表
- 使用 jsbarcode 生成条形码
- 一个函数叫random.sample
热门文章
- iOS10 Safari不识别viewport禁用缩放的暴力解决方案
- 解决html5中video标签无法播放mp4问题的办法
- 连接MYSQL数据库,报1130错误的解决方法
- 单点登录(SSO)解决方案之 CAS服务端数据源设置及页面改造
- 在Git中更改文件名的大小写
- 为什么setTimeout(fn,0)有时有用?
- 如何获取字符的ASCII值
- JavaScript中的“ new”关键字是什么?
- CSS Sprites在IE中不起作用[8/7/6]
- (clion 安装插件联网络失败,pycharm pip联网失败)当电脑选择拨号上网时,解决系统代理被篡改/pip提示“目标计算机积极拒绝,无法连接”的方法! [ 此方法绝对解决系统代理被篡改问题 ]