我想用C ++登录Windows事件日志。 我尝试了boost并添加了简单的日志。 但是我想在事件查看器中创建一个新目录并登录到该目录。
如何使用boost事件记录器或其他方式(除了boost)?
我添加了一个事件查看器的屏幕截图,其中显示了我要添加目录并在其中登录的部分。
这是我的事件日志初始化方法。
void LogHelper::InitEventLogger(LogLevel minLogLevel)
{
try
{
// Create an event log sink
typedef sinks::synchronous_sink< sinks::simple_event_log_backend > sink_t;
boost::shared_ptr< sink_t > sink = boost::make_shared< sink_t>();
sink->set_filter(expr::attr<LogLevel>("Severity") >= minLogLevel);
sink->set_formatter(expr::stream << expr::attr< boost::posix_time::ptime >("TimeStamp") << " : " << expr::smessage);
// We'll have to map our custom levels to the event log event types
sinks::event_log::custom_event_type_mapping< LogLevel > mapping("Severity");
mapping[LogLevel::info] = sinks::event_log::info;
mapping[LogLevel::warning] = sinks::event_log::warning;
mapping[LogLevel::error] = sinks::event_log::error;
sink->locked_backend()->set_event_type_mapper(mapping);
logging::core::get()->add_sink(sink);
}
catch (std::exception & ex)
{
}
}