log4cpp 简单应用

项目地址

https://github.com/orocos-toolchain/log4cpp.git 

#include "log4cpp/Category.hh"
#include "log4cpp/PatternLayout.hh"
#include "log4cpp/OstreamAppender.hh"
#include <log4cpp/Appender.hh>
#include <log4cpp/FileAppender.hh>
#include <log4cpp/Priority.hh>
#include <log4cpp/RollingFileAppender.hh>
#include <log4cpp/PropertyConfigurator.hh>


int main()
{

    log4cpp::PatternLayout* pLayerout = new log4cpp::PatternLayout();
    //设置log输出格式 {time}{loglevel}{file}{line}:message
    pLayerout->setConversionPattern("{%d{%Y-%m-%d %H:%M:%S.%l}}{%p}: %m%n"); // {time}{loglevel}{file}{line}:message

    //Appender 表示一个输出目标 
    // log4cpp::Appender* fileAppender = new log4cpp::FileAppender("fileAppender", "wxb.log");//创建一个Appender;
    // fileAppender->setLayout(pLayerout);//将指定的Layout添加到Appender;

    log4cpp::RollingFileAppender* rollfileAppender = new log4cpp::RollingFileAppender(
        "rollfileAppender", "rollwxb.log", 1 * 1024, 1); // 超过5k自动回滚,最大文件数为1
    rollfileAppender->setLayout(pLayerout);

    log4cpp::PatternLayout* pLayerout1 = new log4cpp::PatternLayout();
    pLayerout1->setConversionPattern("{%d{%Y-%m-%d %H:%M:%S.%l}}{%p}: %m%n"); // {time}{loglevel}{file}{line}:message

    log4cpp::OstreamAppender app("osAppender", &cout);
    app.setLayout(pLayerout1);
    //一般一个程序都有一个根类别, 如果需要多个类别可以用getinstance 
    log4cpp::Category& root = log4cpp::Category::getRoot();//从系统中得到Category的根;
    // root.addAppender(fileAppender);
    root.addAppender(app);
    root.addAppender(rollfileAppender);
    //设置输出等级
    root.setPriority(log4cpp::Priority::ERROR);

    for(int i = 0; i < 100; ++i)
    {
        root.warn("test");
        root.error("error");
    }

    log4cpp::Category::shutdown();

    return 0;
}


-----------------------华丽分界线------------------------------------

 

配置文件加载

 设置配置文件如下

#设置log输出的属性  并设置appender 的名称
log4cpp.rootCategory=DEBUG, console,fileapp
log4cpp.appender.console=ConsoleAppender
log4cpp.appender.console.layout=PatternLayout
log4cpp.appender.console.layout.ConversionPattern={%d{%Y-%m-%d %H:%M:%S.%l}}{%p}: %m%n

log4cpp.appender.fileapp=RollingFileAppender
 
#当日志文件到达maxFileSize大小时,将会自动滚动
log4cpp.appender.fileapp.maxFileSize=400000

#maxBackupIndex指定可以产生的滚动文件的最大数
log4cpp.appender.fileapp.maxBackupIndex=3
 
#fileName指定信息输出位置
log4cpp.appender.fileapp.fileName=test.txt
 
#PatternLayout 表示可以灵活指定布局模式
log4cpp.appender.fileapp.layout=PatternLayout
 
#append=true 信息追加到上面指定的日志文件中,false表示将信息覆盖指定文件内容
log4cpp.appender.fileapp.append=true
log4cpp.appender.fileapp.layout.ConversionPattern={%d{%Y-%m-%d %H:%M:%S.%l}}{%p}{%F}{%L}: %m%n

读取:

try
  {
    log4cpp::PropertyConfigurator::configure("./logsetting.conf");
  }
  catch(const std::exception& e)
  {
    std::cerr << e.what() << '\n';
  }
    
  log4cpp::Category::getRoot().error("hello world");

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值