【问题标题】:PoCo Logging. Log file name containing timestamp of creation OR New log file every time application startsPoCo 日志记录。包含创建时间戳的日志文件名或每次应用程序启动时的新日志文件
【发布时间】:2015-02-09 16:48:48
【问题描述】:

我需要我的程序在每次执行时启动一个新的日志文件。我想使用 PoCo,因为我已经在代码中使用了这个库。

从我的角度来看,我有两种可能性,但我不知道如何使用 Poco 中的通道来配置它们中的任何一种。

  • 每次程序启动都只是启动一个新文件
  • 包含创建时时间戳的实际文件名(不是滚动文件名,而是正在写入的文件名)。

如果我没记错的话,使用 FileChannel 是不可能的。我想我可以写一个新的 PoCo 频道,但显然,我更喜欢已经工作的东西。

有没有人对此有任何想法。我试图弄清楚使用两个渠道,但我不知道如何。

谢谢

【问题讨论】:

    标签: c++ logging poco-libraries


    【解决方案1】:

    FileChannel 具有 rotateOnOpen 属性。如果将此设置为 true,它将在每次打开通道时创建新文件。见FileChannel。如果您没有此属性可用,则说明您使用的是旧版本的 Poco;在这种情况下,您只需在每次应用程序启动时使用新生成的名称打开文件通道:

    std::string name = yourCustomNameGenFunc(); 
    AutoPtr<FileChannel> pChannel = new FileChannel(name);
    

    【讨论】: