1

次の構成のローリングファイルアペンダーであるいくつかのアペンダーに情報を記録するようにlog4netを設定しました:

<appender name="AlchemyRollingFileAppender" type="log4net.Appender.RollingFileAppender">
  <file value="App_Data/logs/log-file.txt" />
  <appendToFile value="true" />
  <rollingStyle value="Date" />
  <maxSizeRollBackups value="10" />
  <maximumFileSize value="1MB" />
  <staticLogFileName value="false" />
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="date: [%date] thread: [%thread] AppDomain: [%appdomain] level: [%level] logger: [%logger] line: [%line] location: [%location] type: [%type] - message:  %newline*******************************************************************%newline*****" />
  </layout>
</appender>

conversionPattern の 'message:' が表示される場所には、以前は %message がありましたが、ローリング ファイルについては、少量の詳細のみが必要です。他のアペンダーは、より詳細な情報をログに記録します。

%message を削除しましたが、引き続き完全な例外メッセージがログ ファイルに追加されます。

理由はありますか?

私が試してみました:

  1. プロジェクトの再構築
  2. IIS のリセット
  3. %メッセージの削除
  4. 内部ログを有効にすると、すべてが正常に見えます
4

1 に答える 1

2

レイアウトタイプを修正して行を追加する必要があります

<ignoresException value="false" />

例えば

<appender name="AlchemyRollingFileAppender" type="log4net.Appender.RollingFileAppender">
  <file value="App_Data/logs/log-file.txt" />
  <appendToFile value="true" />
  <rollingStyle value="Date" />
  <maxSizeRollBackups value="10" />
  <maximumFileSize value="1MB" />
  <staticLogFileName value="false" />
  <layout type="log4net.Layout.PatternLayout">
    <ignoresException value="false" />
    <conversionPattern value="date: [%date] thread: [%thread] AppDomain: [%appdomain] level: [%level] logger: [%logger] line: [%line] location: [%location] type: [%type] - message:  %newline*******************************************************************%newline*****" />
  </layout>
</appender>

これにより、レイアウトが例外を出力するとlog4netが考えるようになるため、余分な行として出力されません。

于 2013-09-05T12:47:41.570 に答える