转自:http://wyw1986119.blog.163.com/blog/static/6332862008112793346967/

手动使用log4cpp的基本步骤如下:

1.       实例化一个layout 对象;

2.       初始化一个appender 对象;

3.       把layout对象附着在appender对象上;

4.       调用log4cpp::Category::getInstance("name"). 实例化一个category对象;

5.       把appender对象附到category上(根据additivity的值取代其他appender或者附加在其他appender后)。

6.       设置category的优先级;

// FileName: test_log4cpp1.cpp

// Test log4cpp by manual operation.

// Announce: use as your own risk.

// Compile : g++ -otest1 -llog4cpp test_log4cpp1.cpp

// Run     : ./test1

// Tested  : RedHat 7.2 log4cpp0.3.4b

// Author  : liqun (liqun@nsfocus.com)

// Data    : 2003-6-27

#include "log4cpp/Category.hh"

#include "log4cpp/FileAppender.hh"

#include "log4cpp/BasicLayout.hh"

int main(int argc, char* argv[])

{

// 1实例化一个layout 对象

log4cpp::Layout* layout =

new log4cpp::BasicLayout();

// 2. 初始化一个appender 对象

log4cpp::Appender* appender = new

log4cpp::FileAppender("FileAppender",

"./test_log4cpp1.log");

// 3. 把layout对象附着在appender对象上

appender->setLayout(layout);

// 4. 实例化一个category对象

log4cpp::Category& warn_log =

log4cpp::Category::getInstance("mywarn");

// 5. 设置additivity为false,替换已有的appender

warn_log.setAdditivity(false);

// 5. 把appender对象附到category上

warn_log.setAppender(appender);

// 6. 设置category的优先级,低于此优先级的日志不被记录

warn_log.setPriority(log4cpp::Priority::WARN);

// 记录一些日志

warn_log.info("Program info which cannot be wirten");

warn_log.debug("This debug message will fail to write");

warn_log.alert("Alert info");

// 其他记录日志方式

warn_log.log(log4cpp::Priority::WARN, "This will be a logged warning");

log4cpp::Priority::PriorityLevel priority;

bool this_is_critical = true;

if(this_is_critical)

priority = log4cpp::Priority::CRIT;

else

priority = log4cpp::Priority::DEBUG;

warn_log.log(priority,"Importance depends on context");

warn_log.critStream() << "This will show up << as "

<< 1 << " critical message"

<< log4cpp::CategoryStream::ENDLINE;

// clean up and flush all appenders

log4cpp::Category::shutdown();

return 0;

}

log4cpp-【写日志】:使用log4cpp的基本步骤相关推荐

  1. java 写日志步骤

    项目希望记录用户访问时的历史.所以写日志相当重要,详细步骤如下 (1)新建项目,导入jar包 在官网上下载log4j.jar导入项目中 (2)新建Java类LogTest.java,写如下代码 pub ...

  2. Linux服务器开发,开源框架log4cpp和日志模块实现

    前言 fwrite到用户缓冲区再write再到内核,相比write直接写入内核肯定是多了一个缓冲区.需要特别注意的是,每次写入数据短<1024时候,fwrite效率更高.每次写的数据多,比如29 ...

  3. python多线程怎么写日志_Python日志记录在多进程下的使用

    1. 问题描述 项目中,使用RotatingFileHandler根据日志文件大小来切分日志.设置文件的MaxBytes为1GB, backupCount大小为5. 经查看,发现日志文件的大小均小于1 ...

  4. cx_oracle写日志信息_浅谈微服务架构之构建日志收集系统

    任何复杂的应用程序偶尔都会出现错误.在微服务应用程序中,需要跟踪几十甚至几百个服务发生的情况.要获取系统的整体视图,日志记录和监控至关重要.在微服务架构中,一个业务请求会经历多个服务,收集端到端链路上 ...

  5. kettle 入门(一)输入输出写日志 / 插入更新

    新建转换(不是新建作业) 然后我们先在主对象树里面设置好db连接 测试一下 就可以继续了. 里面有各种数据库的连接类型 根据自己的需求  选择数据库连接 配置好之后 我们就开始写kettle脚本 (在 ...

  6. 简单的分级别写日志程序

    /************************************************************************/ /* * 文件名称:write_log.cpp * ...

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

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

  8. 利用stdin stdout stderr及POSIX-linux机制重定向写日志

    利用stdin stdout stderr及POSIX-linux机制重定向写日志 由open返回的文件描述符一定是该进程尚未使用的最小描述符.由于程序启动时自动打开文件描述符0.1.2,因此第一次调 ...

  9. Jmeter 在 beanshell 脚本中写日志

    JMETER 在执行时,会写日志数据,我们在编写脚本的时候也可以自己写日志. 日志记录再jmeter 的bin 目录的 jmeter.log 文件中. jmeter 比较人性化,它在这里提供了脚本可以 ...

最新文章

  1. 【机器视觉】 dev_display算子
  2. R语言与数据的图表展示(part1)--不知道起啥名,反正就是初步认识一下
  3. 如何分辨 SAP Fiori Launchpad 里的真假 Fiori 应用
  4. 从零开始学_JavaScript_系列(21)——dojo(8)(手把手教你封装一个widget)
  5. 打印结果和调试结果不一样(C语言)
  6. 微信(支付宝)小程序蓝牙4.0线上项目
  7. php rabbitmq demo
  8. LeetCode 1847. 最近的房间(排序离线计算 + 二分查找)
  9. PyTorch: 各种图像格式相互转化
  10. P2P-JXTA学习(1)-入门
  11. [来自软件No1]XP Skin Pack系统主题-把windows 7变回xp的模样
  12. 使用BitLocker实现磁盘加密、u盘加密、移动硬盘加密
  13. 痞子衡嵌入式:ARM Cortex-M内核那些事(5)- 一表搜罗指令集
  14. maven配置本地仓库、maven配置阿里中央仓库
  15. Linux内核的组成
  16. EditPlus下载安装及使用
  17. oracle模板数据文件,Oracle EBS如何通过命令上传XML/BI Publisher数据定义文件和模板文件...
  18. 4.java基础-static
  19. EDI对接HELLA成功案例
  20. java版京东抢购秒杀商品

热门文章

  1. linux arm 无法执行二进制文件,qemu-arm无法运行arm编译的二进制文件
  2. 三角形的测试用例设计案例
  3. 浅析exit()和atexit()函数
  4. 硬盘清理利器TreeSize Free
  5. Python 取模运算(取余)%误区及详解
  6. 数据结构-头插法和尾插法
  7. 操作系统基础知识用户态和内核态的区别
  8. 论玩镜头的三种境界[转自无忌fruitbear]
  9. 一个简单的个人视频点播网站制作(一)
  10. C++ Opencv 实现Canny算法