12

私がやりたいのは、現在の日付と時刻をログファイルに追加することだけです。

"export_(Wed_Feb_21_2009_at_1_36_41PM)"

これが私のapp.configからの私の現在の設定です

<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
    <file value="c:\export.txt" />
    <appendToFile value="true" />
    <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
    <rollingStyle value="Size" />
    <maxSizeRollBackups value="10" />
    <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message %stackTrace%newline" />
    </layout>
</appender>

ログファイルに日付を追加することは可能ですか、それとも構成ではなくコードで行う必要があることの1つですか?

4

5 に答える 5

17

次のようなファイル名を生成するには:

log_2013-12-19.txt

変更を加える

<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
    <param name="File" value="log_"/>
    <param name="RollingStyle" value="Date"/>
    <param name="DatePattern" value="yyyy-MM-dd.\tx\t" />
    <param name="StaticLogFileName" value="false"/>
</appender>

.\tx\t でファイル名拡張子が .txt になるパラメータ "DatePattern" を確認してください。.\tx\t の代わりに .txt を指定すると、時刻が PM の場合は .PxP、AM の場合は .AxA の拡張子が付いたファイル名が保存されます。そのため、 \t を使用して、パターンの代わりに文字を書くように強制しました。時間も追加される可能性があり、これまでに必要な時間パターンが何であれ.

ですから、これこそがPhilipp Mが望んでいたことなのかもしれません。

于 2013-12-19T07:49:18.543 に答える
13

興味のある人のために、ここに解決策があります:

<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
    <param name="File" value="C:\\Users\\chris\\Documents\\log_.txt"/>
    <param name="RollingStyle" value="Date"/>
    <param name="DatePattern" value="_(yyyy.MM.dd-hh_mm_ss)"/>
    <param name="StaticLogFileName" value="false"/>
    <maximumFileSize value="100KB" />
    <appendToFile value="true" />
    <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />           
    <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message %stackTrace%newline" />
    </layout>
</appender>

そして、これを検証する単体テスト:

[Test]
public void TestLogger()
{
    logger.Info("Start Log");

    for (int i = 0; i < 2500; i++)
    {
        logger.Info(i);
    }

    logger.Info("End Log Log");
}

次の出力が生成されます。

    log_.txt_(2009.02.19-01_16_34)

私が望んでいたものではありませんが、以前のものよりも優れています。

于 2009-02-19T20:17:57.470 に答える
9

設定ファイルに以下を追加します

<appender name="rollingFile" type="log4net.Appender.RollingFileAppender,log4net">
  <param name="File" value="c:\\ProjectX\\Log\\log.txt"/>
  <param name="AppendToFile" value="true"/>
  <lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
  <param name="RollingStyle" value="Date"/>
  <param name="DatePattern" value="yyyy.MM.dd"/>
  <param name="StaticLogFileName" value="true"/>
  <layout type="log4net.Layout.PatternLayout,log4net">
    <param name="ConversionPattern" value="%date [%thread] %-5level %logger - %message%newline"/>
  </layout>
</appender>
于 2009-02-12T13:02:41.280 に答える
1

StaticLogFileNameを使用します:

<param name="StaticLogFileName" value="true"/>
于 2009-02-10T19:41:30.967 に答える