1

Windows Server 2012 R2 で nxlog-ce を使用しています。

nxlog は 2 つの txt ファイルを出力しています。

これら 2 つのファイルを 1 時間ごとにローテーションしたいと思います。アクティブなログを同じ名前 logfileA.txt logfileB.txt に維持し、新しいローテーション ファイルを作成して logfileA.txt.2 logfileB.txt.2 にしたい

各ログ logfileA.txt と logfileA.txt.2 に 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 を使用してログ ローテーションを設定する方法を説明しているリソースを見つけるのに苦労しています。

どんな助けでも大歓迎です。ありがとうございました!

4

1 に答える 1

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>
于 2015-10-09T12:33:29.450 に答える