boost.log(一)输出

打印输出

对于那些不想阅读手册,只需要一个简单的工具用于日志记录的人。你可以直接在控制台中输出日志信息,首先你需要包含头文件boost/log/trivial.hpp,然后编写下面的代码:

  1. #include <iostream>
  2. #include <boost/log/trivial.hpp>
  3. int main(int, char*[])
  4. {
  5. BOOST_LOG_TRIVIAL(trace) << "A trace severity message";
  6. BOOST_LOG_TRIVIAL(debug) << "A debug severity message";
  7. BOOST_LOG_TRIVIAL(info) << "An informational severity message";
  8. BOOST_LOG_TRIVIAL(warning) << "A warning severity message";
  9. BOOST_LOG_TRIVIAL(error) << "An error severity message";
  10. BOOST_LOG_TRIVIAL(fatal) << "A fatal severity message";
  11. system("pause");
  12. return 0;
  13. }

BOOST_LOG_TRIVIAL 宏接受一个严重性级别的枚举,并支持<<运算符插入stream对象到结果中。执行这段代码将在控制台上打印日志消息。正如你所看到的,BOOST_LOG_TRIVIAL宏的使用方式非常类似于std::cout,易于使用。BOOST_LOG_TRIVIAL的优点主要表现在这几个方面:

  • 每条日志记录在消息中包含了时间戳、当前线程标识符、严重级别和记录的消息;
  • 它是线程安全的,能在不同线程中安全地写入日志;
  • 可以进行过滤(后面会演示)。

严重级别的定义如下:

  1. enum severity_level
  2. {
  3. trace,
  4. debug,
  5. info,
  6. warning,
  7. error,
  8. fatal
  9. };

来自为知笔记(Wiz)

时间: 2024-11-08 22:49:08

boost.log(一)输出的相关文章

boost.log要点笔记

常用简写: namespace logging = boost::log; namespace src = boost::log::sources; namespace expr = boost::log::expressions; namespace sinks = boost::log::sinks; namespace attrs = boost::log::attributes; namespace keywords = boost::log::keywords; 要点: 结构图要牢记在

Boost Log 基本用法

Boost Log 基本用法 flyfish 2014-11-5 根据boost提供的代码示例,学习Boost Log 的基本用法 前提 boost版本boost_1_56_0 示例代码文件夹 boost_1_56_0\libs\log\example\basic_usage 使用的单词很形象,整个过程就像流水一样 假设要输出的日志比作水 水                     (Hello, World!) 水槽                 (sink) 流向哪里        (co

Boost log 简单使用

Boost log 简单使用 flyfish 2014-11-8 该示例是在VC2010 MFC Unicode环境下使用 内容包括 1 启动关闭日志 2 设置日志存储路径 3 设置输出日志等级 4 日志是否立即写入文件 5 设置单个文件的大小 6 设置磁盘最小可利用空间 Logger.h #pragma once #include <cassert> #include <iostream> #include <fstream> #include <boost/l

boost.log(九) 配置文件

前面几节中描述了Boost.Log 的基础知识,对Boost.Log 库的操作我们都是在C++代码中进行中,这样就会有一些不便的地方.比如说我们想要更改一下输出格式或者过滤条件,都必须对C++代码进行更改,并且还得编译一次(感觉编译时间还有点长).其实Boost.Log 里面已经为这个问题提供了一种解决方案,就是通过配置文件来初始化Boost.Log 库,C++这边的代码也比较简单,就是这样的: std::ifstream settings("settings.txt"); if (!

boost.log(一)打印日志

打印输出 对于那些不想阅读手册,只需要一个简单的工具用于日志记录的人.你可以直接在控制台中输出日志信息,首先你需要包含头文件boost/log/trivial.hpp,然后编写下面的代码: #include <iostream> #include <boost/log/trivial.hpp> int main(int, char*[]) { BOOST_LOG_TRIVIAL(trace) << "A trace severity message"

boost.log(三)接收器

设置接收器 BOOST_LOG_TRIVIAL不能提供足够的灵活性.例如,有时可能需要更复杂的逻辑来处理日志,而不是简单地将其打印在控制台上.为了定制这一点,你必须构造记录接收器,并在boost.log库core里面注册.这通常只需要你在应用程序启动的地方注册一次就够了. [注意]在前面的章节中我们没有初始化任何的接收器,因为boost.log库在没有初始化任何接收器的情况下会使用一个默认的接收器,这就是为什么我们能够在控制台中看到日志的输出结果.如果你设置了自定义的接收器,那么默认的接收器将会

boost.log(六)格式化

如果你尝试运行上一节中的例子,你会发现只有日志记录消息(没有时间戳等属性信息)会被写入到文件.这是因为boost.log库没有设置格式化.即使你添加了属性到boost.log的core或者是记录器中,记录值也不会被输出,除非你指定了这些值的格式. 回到在前面节教程的一个例子: #include <iostream> #include <boost/log/utility/setup/file.hpp> #include <boost/log/sinks/basic_sink_

boost.log(五)属性

在前面几节中我们提到属性和属性值好几次.在这节我们会学习如何使用属性,以添加更多的数据到日志记录. 每条日志记录可以附加多个已命名的属性值,属性可以代表日志记录产生时任何与程序运行相关的数据信息.如代码位置.执行模块名称.当前数据和时间以及程序运行相关的任何数据信息.属性可以表现为一个值生成器,在这种情况下,将用于返回它参与的每个不同日志记录所生成的值.一旦属性生成值,就可以把这个值用于过滤器,格式化器和接收器.但是使用该属性值你必须知道它的名称和类型.boost.log库中实现了常用的属性,你

boost.log(二)过滤

日志过滤 严重级别可以使日志信息更加翔实,但通常也会成为筛选器用来过滤日志记录的工具.在Log库的core里面可以通过设置全局过滤器很容易地做到日志过滤,就像下面一样: #include <iostream> #include <boost/log/core.hpp> #include <boost/log/trivial.hpp> #include <boost/log/expressions.hpp> void init() { boost::log::