我在Windows Server 2012 R2上使用nxlog-ce。
nxlog正在输出两个txt文件。
我想每小时轮换这两个文件。我希望活动日志保持相同的名称,logfileA.txt logfileB.txt和要创建的新轮换文件logfileA.txt.2 logfileB.txt.2
我只希望每个日志logfileA.txt和logfileA.txt.2都有两个文件,但永远不会是logfileA.txt.3
以下是我当前的nxlog.config
中的重要部分define LOGFILE_Atxt C:\test\logfileA.txt
define LOGFILE_Btxt C:\test\logfileB.txt
<Extension fileop>
Module xm_fileop
<Schedule>
Every 1 hour
Exec file_cycle('%LOGFILE_Atxt%', 2);
Exec file_cycle('%LOGFILE_Btxt%', 2);
</Schedule>
</Extension>
<Output loga_out>
Module om_file
file 'c:\test\logfileA.txt'
CreateDir TRUE
</Output>
<Output logb_out>
Module om_file
file 'c:\test\logfileB.txt'
CreateDir TRUE
</Output>
<Route loga_route>
Path loga_input => loga_out
</Route>
<Route logb_route>
Path logb_input => logb_out
</Route>
在此配置中,当nxlog服务启动时,它立即创建logfileA.txt.1和logfileB.txt.1 但是,系统永远不会旋转日志。永远不会创建logfileA.txt.2和logfileB.txt.2。
我无法找到有关如何使用nxlog设置日志轮换的资源。
非常感谢任何帮助。谢谢!
答案 0 :(得分:3)
我认为问题是om_file一直写入旋转的文件。您需要通知它,以便它将重新打开其输出。以下应该有效:
<Extension fileop>
Module xm_fileop
</Extension>
<Output loga_out>
Module om_file
file 'c:\test\logfileA.txt'
CreateDir TRUE
<Schedule>
Every 1 hour
Exec file_cycle('%LOGFILE_Atxt%', 2);
Exec loga_out->reopen();
</Schedule>
</Output>
<Output logb_out>
Module om_file
file 'c:\test\logfileB.txt'
CreateDir TRUE
<Schedule>
Every 1 hour
Exec file_cycle('%LOGFILE_Btxt%', 2);
Exec logb_out->reopen();
</Schedule>
</Output>