Boost.log库使用方法

开发者福利!热门AI工具限时免费用 购周边即赠Coding Plan Lite,Claude Code、Cursor等20+工具畅享,效率翻倍! 阅读详情

做服务器开发首要做的事情,就是将日志系统建立起来。这个系统也是方便我们检查服务器的问题。

完整代码可以去这里看:
下载地址
boost.log库结构

初始化日志系统

这是一个初始化日志系统的代码。我这里是使用了一个配置文件来做boost.log的设置的。所以代码写起来是非常的简洁。

#include <fstream>

#include <boost/filesystem.hpp>
#include <boost/log/trivial.hpp>
#include <boost/log/utility/setup/common_attributes.hpp>
#include <boost/log/utility/setup/from_stream.hpp>
#include <boost/log/utility/setup/formatter_parser.hpp>
#include <boost/log/utility/setup/filter_parser.hpp>

bool init_log_environment(std::string _cfg)
{
	namespace logging = boost::log;
	using namespace logging::trivial;

	if (!boost::filesystem::exists("./log/"))
	{
		boost::filesystem::create_directory("./log/");
	}
	logging::add_common_attributes();

	logging::register_simple_formatter_factory<severity_level, char>("Severity");
	logging::register_simple_filter_factory<severity_level, char>("Severity");

	std::ifstream file(_cfg);
	try
	{
		logging::init_from_stream(file);
	}
	catch (const std::exception& e)
	{
		std::cout << "init_logger is fail, read log config file fail. curse: " << e.what() << std::endl;
		exit(-2);
	}
	return true;
}

其实最核心的代码就是logging::init_from_stream这个函数。他能加载你对日志的配置信息。这样比起一般将sink设置,日志级别设置写到代码里面的方式要更加简单。接下来我们来看看配置文件的写法。

配置日志

[Core]
DisableLogging=false
Filter="%Severity% >= trace"

[Sinks.console]
Filter="%Severity% > trace "
Destination=Console
Format="[%TimeStamp%] [%Severity%] [%Channel%] %Message%"
Asynchronous=false
AutoFlush=true

#    trace,
[Sinks.trace]
Filter="%Severity% = trace"
Destination=TextFile
Boost研究:Boost Log 日志系统用于记录软件运行过程中的关键信息,是大型CAx软件系统的一个重要的组件。本文拟对Boost.Log模块进行分析,旨在记录其技术要点。 阅读详情

相关推荐

boost log链接问题

1. 使用动态时,要定义BOOST_LOG_DYN_LINK或者BOOST_ALL_DYN_LINK 否则会出现如下错误: CMakeFiles/IrcChatData.dir/src/main.cpp.o: In function `boost::log::v2s_mt_posix::sources::basic_logger<char, boost::log::v2s_m...

wxf306989618的博客 3402

BOOST C++ 19 应用】(1)Boost.log

Boost.LogBoost 中的日志记录。它支持众多后端以各种格式记录数据。通过以不同方式捆绑服务和转发日志条目的前端访问后端。例如,有一个前端使用线程异步转发日志条目。前端可以有过滤器来忽略某些日志条目。他们定义了如何将日志条目格式化为字符串。所有这些功能都是可扩展的,这使得 Boost.Log 成为一个强大的

gongdiwudu的专栏 5460

boost log 使用碰到的问题.

boost log 使用碰到的问题. 2011年12月30日   好不容易编译通过了BoostLog,使用时却发现报如下错误:   1>------ Build started: Project: log, Configuration: Debug Win32 ------   1> stdafx.cpp   1> log.cpp   1>c:\program ...

ncs478yl 370

使用Boost实现日志功能是一种非常方便的方法

其中,Boost.Log提供了丰富的日志功能接口,可以满足不同场景下的日志需求。通过设置日志过滤器,我们可以控制输出哪些级别的日志信息。但是,仅仅输出文本信息有时候是不够的,我们可能需要以更自定义的方式输出日志信息。关键字参数还可以用于指定输出日志的其它格式,例如输出当前线程ID、函数名等信息。关键在于深入了解Boost.Log的表达式和过滤器语法,以便能够灵活地设置日志输出信息。首先,我们先看一下如何使用Boost.Log进行简单的日志输出。关键字参数,我们可以指定输出日志的格式。

HackVibe的博客 402

带你了解BoostLog,一篇boost的总结

设计成非常模块化和可扩展的。该由三个主要层组成:日志数据收集层、收集数据处理层和连接前两层的中央集线器。

sinat_28294665的博客 4944

boost log 快速入门 Getting started

本文的boost log实力代码具有易读时间戳、可选日志级别和自动换行的C++风格日志打印功能,且保证

surfaceyan的博客 1844

boost log_Boost.log使用方法

服务器开发首要做的事情,就是将日志系统建立起来。这个系统也是方便我们检查服务器的问题。 初始化日志系统这是一个初始化日志系统的代码。我这里是使用了一个配置文件来做boost.log的设置的。所以代码写起来是非常的简洁。#include #include #include #include #include #include #include bool init_log_environment(s...

weixin_39781930的博客 853

使用boost::log实现日志记录的方法

在上述代码中,我们定义了一个枚举类型severity_level来表示日志的不同等级,然后定义了init_logging函数,用于初始化日志输出的格式。在这个函数中,我们首先打开一个记录对象,然后向这个记录对象中写入消息,并将等级与消息关联起来,最后将这个记录推送到日志记录器中。在上面的代码中,我们首先创建了一个带有等级的日志记录器,然后调用init_logging函数来初始化日志输出的格式。至此,我们就成功地使用boost::log实现了一个简单的日志记录功能。首先,我们需要定义一个日志记录器。

techDM的博客 627

boost log 使用问题

使用 boost log 的时候,就算最简单的也编译不过,编译的时候 xcode 跳出来这么一顿东西:   Undefined symbols for architecture x86_64:   "boost::log::v2s_mt_posix::record_view::public_data::destroy(boost::log::v2s_mt_posix::recor

vold1101的专栏 1132

boost log使用

boost log使用

fduffyyg的博客 366

boost::log::filter的使用实例

以上代码中,我们使用了core::get()函数获取日志核心对象,并通过set_filter函数设置了过滤条件,即只输出严重性为warning及以上级别的日志。以上即是boost::log::filter的使用实例,通过上述示例代码可以轻松地掌握boost::log::filter的使用方法,并用于实际的日志处理中。以上代码中,我们使用BOOST_LOG_TRIVIAL宏来记录不同级别的日志,并在输出时指定了日志的严重性,以便过滤器对其进行过滤。boost::log::filter的使用实例。

James_CODER的博客 269

boost log_boost-log- 使用经历

最近想整一个日志,以前使用log4cplus,看到了boost推出了1.54版本之后,就开始有了一个log。这个log看了介绍,之后开始尝试去使用。主要的应用场景是让多个模块(so,dll)使用。场景是一个程序,多个模块,模块是单独的so,打印出来的日志,往同一个文件中输出。最初的时候,编译的boost是静态,编译出来的,多是.a类型文件。当在一个日志模块中出示之后,到另一个模块中去使用...

weixin_39585691的博客 340

boostlog使用

以前使用log4cpp,boost增加了log改用了boost的, 其实在用法上差不了太多 log影响性能最基本的有2个地方 一个是console显示,一个是auto_flush不通过缓存直接写入 1 #include "stdafx.h" 2 #include "SLog.h" 3 4 #include 5 #include 6 #incl

zhanghuan_wangkai的博客 3099

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; nam

倦鸟归时 817

使用boost::log模块测量性能 并进行进制数据转储

在上面的代码中,我们添加了一些新的头文件,包括boost/log/core.hpp、boost/log/expressions.hpp、boost/log/sinks/binary_file.hpp和boost/log/sources/logger.hpp。在C++中,Boost提供了一个强大的日志boost::log,它不仅可以帮助我们方便地记录日志,还可以用于测量和分析代码的性能。总结起来,使用boost::log模块可以方便地测量代码的性能,并将测量结果以进制数据的形式进行转储。

ScriptCharm的博客 191

boost log使用 十二 架构研究和主要使用总结

前面做了不少boost log的例子,现在来总结一下,下面是boost log的架构图: 下面总结一下和这个架构相关的知识:1. 如何获得Logging core#include ... boost::shared_ptr core = logging::core::get(); 2. 如何安装Sink对象一个core可以安装多个Sink,下面的代码假定已经有了两个Sink对象,将其安装到co

Dean Chen的专栏 1万+

Boost Log

boost log支持以下配置宏,只列出一些常用的,如下表所示: Macro nameEffect BOOST_LOG_DYN_LINK If defined in user code, the library will assume the binary is built as a dynamically loaded library (“dll” or “so”). ...

weixin_30664539的博客 200

Boost - 测试与调试

Boost提供了完善的测试和调试工具链。Boost.Test是核心单元测试框架,支持测试用例组织、断言宏和fixture;Boost.Log提供灵活的日志系统,可按严重性级别记录信息;Boost.Stacktrace和Boost.Exception增强错误追踪能力。调试策略包括:熟悉文档、使用调试器、处理模板错误、编写单元测试、添加日志输出以及寻求社区帮助。这些工具和方法能显著提升Boost项目的调试效率。

960
上一篇: C语言利用openSSL库AES模块加密
下一篇: C语言IP地址知识
erlang_hell
博客等级 码龄14年 57粉丝 89原创
评论 6
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值