web-dev-qa-db-ja.com

実行ごとにlog4net 1ファイル

アプリケーションを実行するたびにログファイルを作成する必要があります。

私の優先する形式はApp.log.yyyy-MM-dd_HH-mm-ssです。それが不可能な場合は、App.log.yyyy-MM-dd.counterで解決します

これは私の現在のアペンダー構成です:

<appender name="File" type="log4net.Appender.RollingFileAppender">
  <file value="App.log"/>
  <rollingStyle value="Date"/>
  <datePattern value=".yyyy-MM-dd_HH-mm-ss"/>
  <staticLogFileName value="false"/>
  <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
</appender>

ただし、日付と時刻に基づいてランダムな数のファイルを作成します。

46
Diego Mijelshon

アプリケーションは実行するたびに1つのログファイルしか作成しないと想定しているため、ローリングファイルアペンダーは必要ありません(私のソリューションはローリングファイルアペンダーにも適用されます)。

<appender name="FileAppender" type="log4net.Appender.FileAppender">
    <file type="log4net.Util.PatternString" value="c:\temp\App-%date{yyyy-MM-dd_HH-mm-ss}.log" />
    <appendToFile value="true" />
    <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%2thread] %-5level - %message%newline" />
    </layout>
</appender>

(もちろん、ファイルアペンダーに独自のレイアウトやその他の設定を使用できます。)

59
Stefan Egli

また、ローリングスタイルを次のように設定できることにも注意してください。

rollingstyle="Once"

実行されるたびに新しいファイルが作成されます。 staticLogFileNameがtrueに設定されている場合(例:logname.log)、以前のログはlogname.log.1logname.log.2などに設定されます。

最も古いファイル(たとえば、10)を上書きする前に保持されるファイルの数は、

maxSizeRollBackups="10"

編集:実行ごとに日付スタンプ付きのログを作成する私の構成(存在しない場合、.1ルールに従うと、次のようになります)この:

<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
    <file type="log4net.Util.PatternString" value="Logs\MyLog-%date{dd-MM-yyyy}.log" />
    <appendToFile value="false" />    
    <maxSizeRollBackups value="-1" /> <!--infinite-->
    <staticLogFileName value="true" />
    <rollingStyle value="Once" />
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%-5level %date [%thread] %c{1} - %m%n" />
    </layout>
</appender>

ドキュメント としてappendToFile="false"が必要かどうかは100%わかりませんが、rollingStyle="Once"を使用すると自動的に行われると言いますが、これにより、どの場合でもそれが明確になります。

35
Alex

これはApacheのlog4netドキュメントに記載されています。

https://logging.Apache.org/log4net/release/config-examples.html

「プログラムごと」のctrl + f

<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
    <file value="logfile.txt" />
    <appendToFile value="false" />
    <rollingStyle value="Size" />
    <maxSizeRollBackups value="-1" />
    <maximumFileSize value="50GB" />
    <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
    </layout>
</appender>
0