2011-05-01 160 views
0

Boost.Log支持可配置的文件名,例如%Y_%M_%d_sample_%N.log。我想要的是将它们放在不同的文件夹中,比如“%Y_%m_%d/sample_%N.log”,但是它创建了一个名为“%Y_%m_%d”的文件夹,而我期待“2011_05_02” (我正在尝试的日期),你知道如何得到我想要的吗?谢谢如何使用Boost.Log将日志写入格式化的文件夹?

回答

1

它不能这样做,因为它需要创建目录。基本上你不能在操作系统级别的不存在的目录中动态创建文件。这就是为什么它会解析您配置的名称,并且仅为文件名而不是目录重用动态模板。你可以做的是可能使用crontab中的少量shell命令将这些文件移动到相应的目录。

+1

真可惜,我觉得可以实施。由于他们可以即时创建文件,因此他们也应该能够创建文件夹。 – 2011-05-10 08:07:19

+0

@JQ:它仍然可以实现 - 带有一个自定义后端(除非您可能需要重新实现所有日志滚动行为,否则这不是很难实现)。您甚至可以破解file_collector,以便在完成后,文件将*至少收集到不同的目录(取决于它们的日期)。尽管最简单(也是最丑陋)的方法是简单地复制Boost.Log自己的后端,并根据文件名模式对其进行修改以便即时创建目录。 – 2011-05-11 16:12:21

相关问题