旋转由nxlog创建的文件

时间:2015-10-07 18:16:54

标签: windows windows-server-2012-r2 nxlog

我在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设置日志轮换的资源。

非常感谢任何帮助。谢谢!

1 个答案:

答案 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>