日志系统调研

spdlog

只有头文件的开源系统,自身解决了多线程访问的问题
//自定义日志

auto my_logger = spdlog::basic_logger_mt("basic_logger", "logs/basic-log.txt");
my_logger->info("spdlog is very easy to use!");

日志输出中要携带文件名、行数或函数名时,必须使用SPDLOG_LOGGER_*宏,且要激活对应的级别(哪些级别以上的日志会被记录):
记录INFO及以上级别日志
SPDLOG_LEVEL_INFO

spdlog中各对象都分为多线程与单线程版本:
*_st:单线程版本,不用加锁,效率更高。
*_mt:多线程版本,用于多线程程序是线程安全的。
//通过下面工程函数定义的日志logger是线程安全的,默认日志级别为info

spdlog::daily_logger_mt("Rb_daily", file_path, hours%MAX_HOUR, min%MAX_MINUTE);
spdlog::stdout_color_mt("Rb_stdout");
spdlog::rotating_logger_mt("Rb_rotating", file_path, max_size, max_files);

//最低日志级别和日志格式设置

set_level((spdlog::level::level_enum)level);
m_logger->set_pattern(pattern);//日志格式设置与c语言中的printf类似

log4cpp
//日志类别Category
Name:类别的名称
Priority:日志的优先级
Additivity:属性值 默认为ture 是否叠加父类的appenders
parent: 上级Category,根Category的parent为空
Appender日志输出源 (使用指针添加可以把所有权给Category;使用引用添加不能)


//新建输出到终端的appender 一个apender只能和一个category对象绑定,但是一个category对象可以有多个appnder,可以输出到多个位置
log4cpp::Appender* osAppender = new log4cpp::OstreamAppender("osAppender", &cout);
// 新建输出到文件的appender
log4cpp::Appender *appender = new log4cpp::FileAppender("FileAppender", "./test_log4cpp1.log");

log4cpp::FileAppender                      // 输出到文件
log4cpp::RollingFileAppender         // 输出到回卷文件,即当文件到达某个大小后回卷
log4cpp::OstreamAppender           // 输出到一个ostream类
log4cpp::StringQueueAppender             // 输出到内存队列

layouts: 负责进行输出日志格式的限制,其中包含四个主要的类: Layout,BasicLayout,PatternLayout,SimpleLayout四个类
Layout是一个顶层的抽象类,其他类都继承子这个类。
//配置文件读取信息

log4cpp::PropertyConfigurator::configure(initFileName); 

//布局
常用的布局有两种:log4cpp::BasicLayout和log4cpp::PatternLayout
BasicLayout是最简单的布局,输出时间戳,消息优先级和消息内容

osAppender->setLayout(new log4cpp::BasicLayout());

//PatternLayout布局支持通过类似printf函数的格式控制符的方式自定义输出的信息和内容

log4cpp::PatternLayout::setConversionPattern (conststd::string& conversionPattern) ;

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值