zoukankan      html  css  js  c++  java
  • Log4cpp 使用手册

    参考资料: log4cpp 配置 使用http://www.cnblogs.com/welkinwalker/archive/2011/06/23/2088197.html

    便利的开发工具-log4cpp快速使用指南

    http://www.ibm.com/developerworks/cn/linux/l-log4cpp/

    Log4cpp配置文件格式说明

    http://sogo6.iteye.com/blog/1154315

    使用步骤说明:

    1、下载log4cppDLL ,见附件。这里面已经有别人编译完成的.lib与.dll文件。我们拿来用即可。

    包含文件如下图所示:

    clip_image002

    2、打开我们的程序,选中项目,属性,如下图所示

    clip_image004

    3、选择“c/c++“选项,点开下列菜单,点击”常规“:在“附加包含目录”这一栏中,选择编辑,找到刚刚附件里面的文件夹下面的include菜单。

    如下面所示:(我的log4cpp文件放在桌面上,如果想移植时,不改变此输入项,可将log4cpp放在D盘根目录下面即可。)完成之后,点击确定即可。

    clip_image006

    4、在左边的菜单中,点开“链接器“选项。并点开“常规“选项栏。在附加库目录中,选择log4cpp文件下面的动态库文件.dll。如下图所示:(弄完后,点击确定)

    clip_image008

    5、在“链接器“菜单下,选择“输入“,在”附加依赖项“中输入log4cppDLLD.lib,(注:通过.lib当中的文件,我们就可以找到DLL中函数的地址,从而引用DLL当中的函数),如下图所示:

    clip_image010

    6、以上步骤弄完以后,点击确定。然后在选中项目,右击,点击“在windows资源管理器中打开文件“,在此目录下,拷贝两个文件进去。

    一个是 log4cppDLLD.dll,动态链接库文件。

    一个是 log4cpp.conf, log4cpp的配置文件

    此文件见附件。

    7、一切准备工作完成之后,下面进入正式编程阶段。

    1)在你需要添加日志的文件中,引入下面头文件

    #include "log4cpp/Category.hh "
     
    #include "log4cpp/FileAppender.hh"
     
    #include "log4cpp/SimpleLayout.hh"
     
    #include "log4cpp/PropertyConfigurator.hh"
     
    #include <log4cpp/Portability.hh>

    2)在主线程或者副线程中,引入下面日志文件的配置、实例化

    // 1 读取解析配置文件
     
    // 读取出错, 完全可以忽略,可以定义一个缺省策略或者使用系统缺省策略
     
    // BasicLayout输出所有优先级日志到ConsoleAppender
     
    try { 
     
    log4cpp::PropertyConfigurator::configure("./log4cpp.conf");
     
    } catch(log4cpp::ConfigureFailure& f) {
     
    std::cout << "Configure Problem " << f.what() << std::endl;
     
    return -1;
     
    }
     
    // 2 实例化category对象
     
    // 这些对象即使配置文件没有定义也可以使用,不过其属性继承其父category
     
    // 通常使用引用可能不太方便,可以使用指针,以后做指针使用
     
    // log4cpp::Category* root = &log4cpp::Category::getRoot();
     
    log4cpp::Category& root = log4cpp::Category::getRoot();
     
    log4cpp::Category& sub1 = 
     
    log4cpp::Category::getInstance(std::string("sub1"));
     
    // 3 正常使用这些category对象进行日志处理。
     
    // sub1 has appender A1 and rootappender.
     
    int i = 1;
     
    sub1.info("info: %d ok !",i); //这个和我们的配置文件相关
     

    3)运行程序,此时会出现以下界面:

    clip_image012

    选中项目,右击,点击“在windows资源管理器中打开文件“,此时会发现,该目录下,出现了A1.log文件,打开文件出现下面的文字:

    The message 'info: 1 ok !' at time 2014-09-02 19:56:55,686[2676]INFO

    为什么会出现此信息???

    4)打开log4cpp.conf文件,一切秘密皆在此。

    我引用的是A1 category,而A1属性如下:

    #定义A1的属性

    log4j.appender.A1=org.apache.log4j.FileAppender

    log4j.appender.A1.fileName=A1.log

    appender.A1.layout=org.apache.log4j.PatternLayout

    appender.A1.layout.ConversionPattern=The message '%m' at time %d[%t]%p%n

    第一行大概意思:输出文件Appender

    第二行大概意思:输出文件名字定义为A1.log

    第三行大概意思:文件的布局layout方式是PatternLayout模式。模式不同,输出的内容亦有所不同。

    第四行大概意思:输出内容。

    下面对The message '%m' at time %d[%t]%p%n 这句话做详细说明。

    此为输出文件的格式说明符。

    其中 %m表示 用户写log的具体信息,也就是我们所要存的内容。

    %d 表示 时间戳,精确到ms

    %t 表示 线程名

    %p 表示 优先级

    %n 表示 回车换行符

    That is all,thanks。

  • 相关阅读:
    MinGW离线包下载地址
    词法分析器--DFA(c++实现)
    linux下shell统计文件目录下所有代码行数
    四则运算表达式
    BliBli抢楼全攻略
    python 电影下载链接爬虫
    in, out, ref
    联合查询
    SQL语句大全
    LINQ
  • 原文地址:https://www.cnblogs.com/zhuxuekui/p/3952196.html
Copyright © 2011-2022 走看看