Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Logging 如何使用Boost.log将日志写入格式化文件夹?_Logging_Boost_Boost Log - Fatal编程技术网

Logging 如何使用Boost.log将日志写入格式化文件夹?

Logging 如何使用Boost.log将日志写入格式化文件夹?,logging,boost,boost-log,Logging,Boost,Boost Log,Boost.Log支持可配置的文件名,例如%Y\u%m\u%d\u sample\u%N.Log。我想要的是把它们放在不同的文件夹中,比如说,“%Y\u%m\u%d/sample\u%N.log”,但它创建了一个名为“%Y\u%m\u%d”的文件夹,而我期待的是“2011\u 05\u 02”(对于我正在尝试的日期),你知道如何获得我想要的吗?谢谢,它不能这样做,因为它需要创建目录。基本上,您无法在操作系统级别的不存在目录中动态创建文件。这就是为什么它会解析您配置的名称,并仅对文件名而不是目录重

Boost.Log支持可配置的文件名,例如%Y\u%m\u%d\u sample\u%N.Log。我想要的是把它们放在不同的文件夹中,比如说,“%Y\u%m\u%d/sample\u%N.log”,但它创建了一个名为“%Y\u%m\u%d”的文件夹,而我期待的是“2011\u 05\u 02”(对于我正在尝试的日期),你知道如何获得我想要的吗?谢谢,它不能这样做,因为它需要创建目录。基本上,您无法在操作系统级别的不存在目录中动态创建文件。这就是为什么它会解析您配置的名称,并仅对文件名而不是目录重用动态模板的原因。相反,您可以使用crontab中的几个shell命令将这些文件移动到相应的目录。

真遗憾,我认为它是可以实现的。因为他们可以动态创建文件,所以他们也应该能够创建文件夹。@JQ:它仍然可以通过自定义后端实现(这并不难实现,只是您可能需要重新实现所有日志滚动行为)。您甚至可以破解文件收集器,以便在处理完文件后,至少可以将文件收集到不同的目录(取决于它们的日期)。不过,最简单(也是最丑陋)的方法是简单地复制Boost.Log自己的后端,并根据文件名模式修改它以动态创建目录。