我使用boost 1.63进行日志记录,使用以下代码行来使用Boost配置文件进行日志记录:
Logger::initFromConfig(logConfigName);
我决定这样做是因为我希望它是可配置的,这样我就可以避免了解Boost日志设置API。配置文件内容为:
[Core]
DisableLogging="false"
[Sinks.SYSLF]
Destination="TextFile"
Asynchronous="true"
AutoFlush="true"
Format="[%TimeStamp(format=\"%Y-%m-%d %H:%M:%S.%f\")%][%Severity%] %Message%"
Target="logs"
FileName="dsmip_%N.log"
RotationTimePoint="00:00:00"
ScanForFiles="Matching"
MaxSize="10000000"
Filter="%Severity% >= info"
[Sinks.Console]
Destination="Console"
AutoFlush="true"
Format="[%TimeStamp(format=\"%Y-%m-%d %H:%M:%S.%f\")%][%Severity%] %Message%"
Filter="%Severity% >= debug"
我的问题是autoflush对文件不起作用。在stdout上我立即得到每个事件,但是当我退出应用程序时,首先写入文件。这对伐木来说非常尴尬......
首先我使用了1.58,情况是一样的。我做错了什么?
提前谢谢你。 最诚挚的问候:Balazs Bamer
答案 0 :(得分:0)
Google是我的朋友,我找到了解决方案here。 Boost确实可以在应用程序目录中创建日志文件,并且仅在关闭时将其复制到目标(日志旋转或程序存在)。因此,为了使所有日志文件出现在特定目录中,必须在目标文件名模式和中包含目录名称。
this.actions$
.ofType('ADD_SOURCE')
.switchMap(
(action: Action) =>
(Observable.of({ type: 'ADD_SOURCE_SUCCESS' })));
最好的问候:Balazs