我现在拥有的:
//Windows Event Log
Poco::EventLogChannel* elChannel = new Poco::EventLogChannel("App");
//Simple file Log
Poco::SimpleFileChannel* sfChannel = new Poco::SimpleFileChannel();
sfChannel->setProperty("path", "log.txt");
sfChannel->setProperty("rotation", "10 M");
//Splitter Channel
Poco::SplitterChannel* sChannel = new Poco::SplitterChannel();
sChannel->addChannel(sfChannel);
sChannel->addChannel(elChannel);
logger().root().setChannel(sChannel);
logger().root().setLevel(Poco::Message::PRIO_INFORMATION);
我希望在分割器中每个通道有不同的日志级别:
这样,只有WARNING以上的消息才会转到Windows事件查看器。
这可以通过标准的Poco :: Logger以某种方式实现吗?
答案 0 :(得分:1)
记录级别是每个Logger,而不是每个Channel,因此您必须拥有两个记录器。见Logger example。为了避免不必两次记录相同的东西,你可以编写自己的"分离器"包装记录器并将相同的消息记录到两者的函数。