使用Boost的Log库,将日志信息写入文件,日志将按时间滚动。详见代码:

#include <boost/date_time/posix_time/posix_time_types.hpp>
#include <boost/log/core.hpp>
#include <boost/log/expressions.hpp>
#include <boost/log/sinks/sync_frontend.hpp>
#include <boost/log/sinks/text_ostream_backend.hpp>
#include <boost/log/sources/record_ostream.hpp>
#include <boost/log/sources/severity_logger.hpp>
#include <boost/log/support/date_time.hpp>
#include <boost/log/utility/setup/file.hpp>
#include <boost/log/utility/setup/common_attributes.hpp>
#include <boost/log/trivial.hpp>namespace logging = boost::log;
namespace sinks = boost::log::sinks;
namespace src = boost::log::sources;
namespace expr = boost::log::expressions;
namespace attrs = boost::log::attributes;
namespace keywords = boost::log::keywords;void init_log_lib()
{auto sink = logging::add_file_log(keywords::file_name = "%Y%m%d_%4N.log",keywords::rotation_size = 5 * 1024 * 1024,keywords::time_based_rotation = sinks::file::rotation_at_time_point(23,59,59),keywords::format = (expr::stream<< expr::format_date_time<boost::posix_time::ptime>("TimeStamp","%Y-%m-%d %H:%M:%S") << " <" <<logging::trivial::severity<<"> "<<expr::smessage));sink->locked_backend()->set_file_collector(sinks::file::make_collector(keywords::target = "./logs",keywords::max_size = 500*1024*1024,keywords::min_free_space = 800*1024*1024));sink->locked_backend()->auto_flush(true);sink->locked_backend()->scan_for_files();logging::core::get()->set_filter(logging::trivial::severity >= logging::trivial::trace);logging::add_common_attributes();
}void close_log_lib()
{logging::core::get()->remove_all_sinks();
}void log_msg(const std::string& msg)
{src::severity_logger_mt<logging::trivial::severity_level> lg;BOOST_LOG_SEV(lg, logging::trivial::info) << msg;
}int main()
{init_log_lib();log_msg("Hello World!\n");close_log_lib();return 0;
}

使用Boost::Log记录日志相关推荐

  1. Boost Log : Setting up sinks

    Setting up sinks 有时候,trivial(简单的)logging并不能满足要求.例如,想要更精细的日志处理,而不是简单地打印出来.为此,必须构建自定义的sinks,并且将它们注册到co ...

  2. boost::log模块测试样板,用于检查每个公共标头是否都是独立的并且没有任何缺失的 #includes

    boost::log模块测试样板,用于检查每个公共标头是否都是独立的并且没有任何缺失的 #includes 实现功能 C++实现代码 实现功能 boost::log模块测试样板,用于检查每个公共标头是 ...

  3. boost::log模块测试get_attributes()这个const方法可以获取线程模型内部的互斥锁

    boost::log模块测试get_attributes这个const方法可以获取线程模型内部的互斥锁 实现功能 C++实现代码 实现功能 boost::log模块测试get_attributes() ...

  4. boost::log模块测量转储二进制数据的性能

    boost::log模块测量转储二进制数据的性能 实现功能 C++实现代码 实现功能 boost::log模块测量转储二进制数据的性能 C++实现代码 #include <cstdlib> ...

  5. boost::log模块测量日志记录发射的性能

    boost::log模块测量日志记录发射的性能 实现功能 C++实现代码 实现功能 boost::log模块测量日志记录发射的性能 C++实现代码 #define BOOST_NO_DYN_LINK ...

  6. boost::log模块测试检查插入不会使容器中的现有元素无效

    boost::log模块测试检查插入不会使容器中的现有元素无效 实现功能 C++实现代码 实现功能 boost::log模块测试检查插入不会使容器中的现有元素无效 C++实现代码 #define BO ...

  7. boost::log::attributes::make_function用法的测试程序

    boost::log::attributes::make_function用法的测试程序 实现功能 C++实现代码 实现功能 boost::log::attributes::make_function ...

  8. boost::log::attribute_value_set用法的测试程序

    boost::log::attribute_value_set用法的测试程序 实现功能 C++实现代码 实现功能 boost::log::attribute_value_set用法的测试程序 C++实 ...

  9. boost::log::parse_formatter用法的测试程序

    boost::log::parse_formatter用法的测试程序 实现功能 C++实现代码 实现功能 boost::log::parse_formatter用法的测试程序 C++实现代码 #def ...

最新文章

  1. php 怎么分布式,php分布式怎么部署
  2. 手动制造报错_一个订单管理系统帮你轻松应对复杂的生产订单管理
  3. 计算1-100之间 所有能被3 不能被 5整除的数 的 个数,每行打印 5 个
  4. 产品壁垒_打破人员,流程和产品之间的壁垒
  5. C++ STL容器vector篇(五) vector容器常用初始化操作总结(一维/二维)
  6. 1748. The Most Complex Number/LG的数学计划~~~持续更新ing(反素数求解)
  7. hnu暑期CCF培训之多项式加法
  8. 新年第一份“欧气”,“中国开发者大调查”第五批中奖名单出炉啦
  9. 星低级格式化工具_Elixir 数据库查询工具 Ecto 讲解
  10. Spring Boot打包成jar包
  11. Understanding Growth
  12. 前端软件sublime的一些常用快捷键
  13. 深入理解高级数据结构之红黑树
  14. JavaEE进阶——Spring学习笔记
  15. 【每日最爱一句】2013.07.10
  16. glut 配置,解决“gl/glut.h”: No such file or directory
  17. 如果你喜欢的女孩有了男朋友,但她男朋友比你差很多,怎么办?
  18. Simcenter Amesim 2019.1与Matlab/simulink联合仿真-环境配置与例程联合仿真
  19. 闲着无事,自己写的电脑wifi共享软件---WiFi Freedom
  20. 3D 可视化入门:渲染管线原理与实践

热门文章

  1. 一道google面试题--自然数e中出现的连续的第一个10个数字组成的质数
  2. 关闭微软Edge浏览器打开时使用推荐浏览器设置的弹窗
  3. 买股票也要会买跌,股票不是只有涨的时候才能买的
  4. 系统架构师(一)选择题
  5. jdk1.7新特性: 自动关闭IO流
  6. Hive 与 Hbase表映射(内部表与外部表),Hbase常用命令
  7. 如何利用MATLAB对多项式进行计算?
  8. 少儿教育和游戏的火花在哪里?
  9. 知名软件 XMind 竟然请求其它网站发布其盗版软件
  10. 多少牛逼的程序员毁在low逼的英文发音上(JAVA)