`

C++日志库log4cplus使用手册

 
阅读更多

1、 概要

软件一般都有维护自己的日志,日志有一下几个作用:

Ø 通过查看日志,了解软件正在执行的操作,这一功能可以用于调试;

Ø 当软件发生错误时,可以从日志中找出错误原因。

软件完善日志功能和日志库工具是两个不同的概念,前者需要程序员考虑所有可能的异常情况,并将其捕获然后写进日志,而后者是这一过程中的工具。

本文将要介绍的是一款linux下用于C++的日志库:log4cplus

2、 安装与配置

安装

#tar –jxvf log4cplus-1.0.4-rc4.tar.bz2*.tar.bz2

#cd log4cplus-1.0.4-rc4

#configure --prefix=/usr/local/

#make

#make install

配置

#export LD_LIBRARY_PATH=/usr/local/log4cplus/lib/

3、 使用实例

log4cplus库实现了5个等级的信息:DEBUGINFOWARNINGERRORFATAL

Ø 日志内容形式为:DEBUG Enter the main function

Ø 并且对日志文件名没有进行规定。

本文的实例对log4提供的日志函数进行了封装,最终增加的功能如下:

Ø 日志文件名形式:2009-10-10.txt

Ø 日志内容形式:DEBUG [2009-10-10 10:12:34] Enter the main function

Ø 自定义写日志接口函数形式:writelog("TRACE",” Enter the main function”);

#include <log4cplus/logger.h>

#include <log4cplus/configurator.h>

#include <iomanip>

#include <log4cplus/logger.h>

#include <log4cplus/fileappender.h>

#include <log4cplus/consoleappender.h>

#include <log4cplus/layout.h>

#include <time.h>

using namespace std;

using namespace log4cplus;

Logger pTestLogger;

void writelog(char* leval,char* info)

{

struct tm *p;

time_t lt=time(NULL);

p=localtime(&lt);

char* timetemp=ctime(&lt);

*(timetemp+strlen(timetemp)-1)='/0';

char temp[10000];

sprintf(temp,"[%s] %s",timetemp,info);

printf("temp==%s",temp);

printf("leval====%s/n",leval);

if(memcmp(leval,"TRACE",5)==0)

printf("%d===%d",memcmp("TRACE","TRAC1E",5),memcmp(leval,"TRACE",5));

LOG4CPLUS_TRACE(pTestLogger,temp);

if(memcmp(leval,"DEBUG",5)==0)

LOG4CPLUS_DEBUG(pTestLogger,temp);

if(memcmp(leval,"INFO",4)==0)

LOG4CPLUS_INFO(pTestLogger,temp);

if(memcmp(leval,"WARN",4)==0)

LOG4CPLUS_WARN(pTestLogger,temp);

if(memcmp(leval,"ERROR",5)==0)

LOG4CPLUS_ERROR(pTestLogger,temp);

if(memcmp(leval,"FATAL",5)==0)

LOG4CPLUS_FATAL(pTestLogger,temp);

}

int main()

{

char* info="you have a iuns";

char filename[50];

struct tm *p;

time_t lt=time(NULL);

p=localtime(&lt);

sprintf(filename,"%d-%d-%d.txt",(1900+p->tm_year), (1+p->tm_mon),p->tm_mday);

FILE* stream=fopen(filename,"wb");

SharedAppenderPtr pFileAppender(new FileAppender((filename)));

pTestLogger = Logger::getInstance(("LoggerName"));

pTestLogger.addAppender(pFileAppender);

writelog("TRACE",info);

writelog("DEBUG",info);

writelog("ERROR",info);

return 0;

}

编译命令:

#g++ filetime.cpp -I /usr/local/log4cplus/include/ -L /usr/local/log4cplus/lib -llog4cplus -o filetime

分享到:
评论

相关推荐

    (VS2010 C++)基于Log4PlusPlus库开发的日志模块demo

    此demo是基于Log4PlusPlus库开发的日志模块demo,里面有可用的log4cplus.dll,log4cplus.lib库。基于VS2010 C++ 开发,包含VS工程源码,里面有独立封装的接口类,可直接用于项目开发。

    log4cplus 源码(C++编写的开源的日志系统)

    log4cplus是C++编写的开源的日志系统,功能非常全面,用到自己开发的工程中会比较专业的,:),本文介绍了log4cplus基本概念,以及如何安装,配置。 ### 简介 ### log4cplus是C++编写的开源的日志系统,前身是java...

    Qt中第三方日志库log4cplus的基本配置和使用详解案例.rar

    Qt中第三方日志库log4cplus的基本配置和使用详解案例,仅供参考,不可盲目相信,因为我的编译环境和您的不相同,所以建议参考文章自己编译,文章可参考:https://blog.csdn.net/didi_ya/article/details/123148479

    c++开源日志log4cplus使用开发文档

    log4cplus是C++编写的开源日志系统,前身是java编写的log4j日志系统。log4cplus具有线程安全、灵活、以及多粒度控制的特点,通过将信息划分优先级使其可以面向程序调试、运行、测试、和维护等全生命周期; 你可以...

    log4cplus 一个开源的c++日志库

    一个非常好用的开源c++的日志库。写的非常好。是和log4jxxx是一个系列。我用它主要是可以和linux下的syslog的对接。...源码库http://sourceforge.net/projects/log4cplus/files/log4cplus-stable/下载。

    c++ 日志库spdlog 最新源代码

    c++ 日志库spdlog 最新源代码c++ 日志库spdlog 最新源代码c++ 日志库spdlog 最新源代码c++ 日志库spdlog 最新源代码c++ 日志库spdlog 最新源代码c++ 日志库spdlog 最新源代码c++ 日志库spdlog 最新源代码c++ 日志库...

    封装的log4cplus的日志库

    封装的log4cplus日志库,软件采用vs2008编写,在实际项目中使用,方便高效。

    Log4cplus_src C++ 日志模块 源代码和使用说明

    Log4cplus_src C++ 日志模块 源代码和使用说明

    log4cplus开源的C++日志框架

    log4cplus,开源的C++日志框架

    log4cplus日志封装log

    log4cplus是C++编写的开源的日志系统,log为对其的封装类,支持类似Format方式输出日志,方便开发中对日志的编写以及维护

    C++X64之log4cplus.dll

    C++X64之log4cplus.dll的编译、继承、二次封装、使用说明,简便易用、稳定可靠。

    log4cplus源代码

    log4cplus是C++编写的开源的日志系统,前身是java编写的log4j系统.受Apache Software License 保护。作者是Tad E. Smith。log4cplus具有线程安全、灵活、以及多粒度控制的特点,通过将信息划分 优先级使其可以面向...

    log4cplus-C++-VS

    log4cplus的源代码,通过CMake编译的C++代码,IDE为VS,运行msvc10里的log4cplus.sln,打开后将静态库log4cplusS或动态库log4cplus作为启动项,设置项目属性为自己需要的多字节或者Unicode 运行后生成的dll和lib文件...

    log4cplus文档

    apache公司的log4的c++版本,可以用于用c++开发nginx和apache服务时记录日志。

    Log4cplus使用指南(带书签)

    Log4cplus使用指南 非常详细 由docx转换的 带书签

    Log4CPlus日志系统

    log4cplus是C++编写的开源的日志系统,功能非常全面,用到自己开发的工程中会比较专业的

    log4cplus-1.1.2-rc3

    C++版的log4j log4cplus

    log4cplus-2.0.2 vs2017编译

    visual studio 2017(vc15) 编译的log4cplus 2.0.2,32位,下载即用

    log4cplus资源

    log4cplus是C++编写的开源的日志系统。log4cplus具有线程安全、灵活、以及多粒度控制的特点。

    log4cplus-1.1.3-rc2 源码

    log4cplus-1.1.3-rc2.zip log4j的c++实现,非常使用的工具,这里提供源码供大家学习c++、系统架构设计等方面的知识。

Global site tag (gtag.js) - Google Analytics