`

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

分享到:
评论

相关推荐

    log4cplus日志封装log

    总的来说,`log4cplus`与封装后的`log`类结合使用,为C++开发人员提供了一套强大且易用的日志管理系统。通过合理的配置和编程实践,我们可以充分利用这些工具,提高代码的可调试性和系统的可维护性。无论是调试阶段...

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

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

    封装的log4cplus的日志库

    "封装的log4cplus日志库"就是这样的一个工具,它为C++程序员提供了一套强大的日志处理功能,使得在VS2008环境下编写的应用程序能够方便地记录和管理日志信息。 **log4cplus简介** log4cplus是基于Apache log4j理念...

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

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

    log4cplus-2.0.2 vs2017编译

    4. **编写日志信息**:使用logger对象的`LOG4CPLUS_TRACE`, `LOG4CPLUS_DEBUG`, `LOG4CPLUS_INFO`, `LOG4CPLUS_WARN`, `LOG4CPLUS_ERROR`和`LOG4CPLUS_FATAL`宏记录不同级别的日志。 5. **运行时配置**:log4cplus...

    log4cplus使用

    2. 配置:log4cplus使用配置文件(通常为log4cplus.properties或log4cplus.xml)来设置日志行为。配置文件中包含了日志级别、Appender类型、Filter规则等信息。 三、基本使用 1. 初始化:在程序启动时,需要调用`...

    log4cplus开源的C++日志框架

    **log4cplus** 是一个基于C++的开源日志框架,它的设计灵感来源于Java社区中的log4j,旨在提供一种高效、灵活且易于使用的日志记录解决方案。这个框架允许开发者在C++程序中方便地记录调试信息,帮助追踪代码问题、...

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

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

    log4cplus 使用文档说明

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

    log4cplus封装类

    Log4cplus是一个广泛使用的C++日志记录库,它借鉴了Java的log4j理念,为C++程序员提供了强大的日志管理功能。本文将深入探讨log4cplus封装类的原理、使用方法,并结合实际项目经验,分享其在项目中的具体应用。 一...

    Log4Cplus支持c++和夸平台的日志开源库

    5. **Hierarchy(层级结构)**:Log4Cplus使用树状的Logger结构,允许设置全局和局部的配置,实现灵活的控制策略。 ### 四、使用流程 1. **初始化**:在程序启动时,需要调用Log4Cplus的初始化函数,配置日志系统...

    Log4cplus使用指南

    ### Log4cplus使用指南 #### 1. Log4cplus简介 Log4cplus是一款专为C++设计的开源日志系统,其前身是基于Java的log4j系统。这款工具由Tad E. Smith开发,并受到Apache Software License的保护。Log4cplus提供了...

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

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

    log4cplus-1.2.1 vs2017编译

    标题"log4cplus-1.2.1 vs2017编译"指的是一项工程,其中将开源的日志库log4cplus版本1.2.1与Microsoft Visual Studio 2017 (简称VS2017或vc15)相结合,进行了编译工作,目的是为了在32位环境下生成可直接使用的二...

    我个人的log4cplus-1.2.2的编译与测试使用,Win7+VS2013环境

    log4cplus作为C++的日志框架,因其灵活、高效而受到广泛使用。本文将详细讲解如何在Windows 7环境下,使用Visual Studio 2013(VS2013)编译并测试log4cplus-1.2.2版本。 首先,我们需要了解log4cplus的基本概念。...

    log4cplus-1.1.3-rc2 源码

    log4cplus是Apache log4j的C++实现,是一款功能强大、易于使用的日志记录库,其1.1.3-rc2版本提供了丰富的功能和优化,为C++开发者提供了高效、灵活的日志解决方案。 首先,log4cplus遵循了log4j的设计理念,即提供...

    Log4CPlus日志系统

    Log4CPlus是一个基于C++的日志记录框架,它的设计灵感来源于Java的Log4j,因此在命名上也带有明显的Log4j痕迹。这个开源项目为C++开发者提供了一个强大、灵活且高效的日志处理解决方案,能够帮助程序员方便地记录...

    log4cplus

    **log4cplus** 是一个基于C++的日志记录库,它受到了Java的log4j项目的启发,旨在为C++开发者提供一个功能强大、高效且易于使用的日志记录框架。这个开源项目的主要目标是简化应用程序的日志管理,帮助开发者轻松地...

    基于log4cplus-1.2.0-rc5 版本自实现的一个appender(RollingAppender)

    Log4cplus是一个流行的C++日志记录库,它为应用程序提供了灵活的日志处理功能。本文将深入讲解基于log4cplus-1.2.0-rc5版本自实现的一个appender——RollingAppender,该appender结合了RollingFileAppender和...

Global site tag (gtag.js) - Google Analytics