Boost.Log使用

#include <boost/log/core.hpp>
#include <boost/log/expressions.hpp>
#include <boost/log/support/date_time.hpp>
#include <boost/log/trivial.hpp>
#include <boost/log/utility/setup/common_attributes.hpp>
#include <boost/log/utility/setup/console.hpp>
#include <boost/log/utility/setup/file.hpp>

// 自定义宏,用于记录带有文件名和行号的日志
#define LOG_WITH_LOCATION(logger, severity) BOOST_LOG_SEV(logger, severity) \
    << "[" << __FILE__ << ":" << __LINE__ << "] "

// 针对不同日志级别定义简化宏
#define LOG_INFO(logger) LOG_WITH_LOCATION(logger, boost::log::trivial::info)
#define LOG_WARNING(logger) LOG_WITH_LOCATION(logger, boost::log::trivial::warning)
#define LOG_ERROR(logger) LOG_WITH_LOCATION(logger, boost::log::trivial::error)
#define LOG_FATAL(logger) LOG_WITH_LOCATION(logger, boost::log::trivial::fatal)

void init()
{
    boost::log::add_console_log(std::clog, boost::log::keywords::format = (
        boost::log::expressions::stream
        << boost::log::expressions::format_date_time<boost::posix_time::ptime>("TimeStamp", "%Y-%m-%d %H:%M:%S.%f") << " "
        << "[" << boost::log::trivial::severity << "] "
        << boost::log::expressions::smessage
    ));

    boost::log::add_file_log(boost::log::keywords::file_name = "log_%N.log",
        boost::log::keywords::rotation_size = 10 * 1024 * 1024,
        boost::log::keywords::time_based_rotation = boost::log::sinks::file::rotation_at_time_point(0, 0, 0),
        boost::log::keywords::format = (
            boost::log::expressions::stream
            << boost::log::expressions::format_date_time<boost::posix_time::ptime>("TimeStamp", "%Y-%m-%d %H:%M:%S.%f")
            << " [" << boost::log::trivial::severity << "] "
            << boost::log::expressions::smessage)
    );

    // 添加通用属性
    boost::log::add_common_attributes();
}

int main(int argc, char *argv[])
{
    init();
    // 添加控制台日志附加器
    // 记录日志
    boost::log::sources::severity_logger<boost::log::trivial::severity_level> logger;
    LOG_INFO(logger) << "This is an info message";
    LOG_WARNING(logger) << "This is a warning message";
    LOG_ERROR(logger) << "This is an error message";
    LOG_FATAL(logger) << "This is a fatal message";

    return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

飞天遇见妞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值