c++ - 不正确的 boost 日志时间戳格式

标签 c++ logging boost boost-log

我正在使用 Boost 1.54 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_ATTRIBUTE_KEYWORD(line_id, "LineID", unsigned int)
BOOST_LOG_ATTRIBUTE_KEYWORD(severity, "Severity", severity_level)
BOOST_LOG_ATTRIBUTE_KEYWORD(tag_attr, "Tag", std::string)
BOOST_LOG_ATTRIBUTE_KEYWORD(timestamp, "TimeStamp", boost::posix_time::ptime)

logging::add_common_attributes();
boost::shared_ptr<logging::core> core = logging::core::get();

// setup console log
logging::add_console_log (
    std::clog,
    keywords::filter = severity >= debug,
    keywords::format = (
        expr::stream << expr::format_date_time(timestamp, "%Y-%m-%d %H:%M:%S") <<
            line_id << " [" << severity << "] " << expr::smessage
    )
);

这是生成的输出示例:

2013-09-13 10:17:471 [warn] You are running in debug mode - assertions are enabled.
2013-09-13 10:17:472 [info] loading data completed
2013-09-13 10:17:473 [debug] applying xxx completed
2013-09-13 10:17:474 [debug] computing xxx completed
2013-09-13 10:17:475 [debug] xxx completed
2013-09-13 10:17:476 [info] xxx completed
2013-09-13 10:17:477 [debug] xxx completed
2013-09-13 10:17:478 [debug] computing xxx completed
2013-09-13 10:17:479 [info] testing xxx completed
2013-09-13 10:17:4710 [info] xxx
2013-09-13 10:17:4711 [debug] xxx completed

Timestamp 的输出秒数完全不正确,但根据 Boost Log 文档,%S 是秒数的正确格式设置。这会是一个错误吗?

最佳答案

时间和 line_id 之间没有空格,所以它们一起运行。

关于c++ - 不正确的 boost 日志时间戳格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18781574/

相关文章:

c++ - 使用/购买Qt SDK(包括Qt Creator等)

c++ - 在 C++ 命名空间中, `static` 限定符在为 header 中声明的非成员子例程添加前缀时有任何影响吗?

java - 如何配置logging.properties将内容放入Java类中(没有包装模式)?

c++ - 在 C++ 中使用正则表达式查找 [/和 ] 之间的数字

java - 为什么在 JNI 中调用纤程会在 JVM 中引发 StackOverflow?

C++ 在 2D std::vector 中找到最大值的位置

C++ - 当我使用 sprintf() 函数时程序崩溃(std::cout 工作正常)

java - logback的 "prudent mode"是怎么实现的?

logging - 为什么 logging.handlers.TimedRotatingFileHandler 创建 root 拥有的新日志文件?

c++ - 如何使用 boost::filesystem 计算目录中的文件数?