4

web.config ファイルに次の構成がありますが、情報をC#data.txtに個別に記録するにはどうすればよいですか?general.txt

誰かが私にサンプルコードを提供できますか?

<appender name="GeneralLog" type="log4net.Appender.RollingFileAppender">
  <file value="App_Data/Logs/general.txt" />
  <appendToFile value="true" />
  <maximumFileSize value="2MB" />
  <rollingStyle value="Size" />
  <maxSizeRollBackups value="5" />
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%d{HH:mm:ss.fff} [%t] %-5p %c - %m%n"  />
  </layout>
</appender>
<appender name="DataLog" type="log4net.Appender.RollingFileAppender">
  <file value="App_Data/Logs/data.txt" />
  <appendToFile value="true" />
  <maximumFileSize value="2MB" />
  <rollingStyle value="Size" />
  <maxSizeRollBackups value="5" />
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%d{HH:mm:ss.fff} [%t] %-5p %c - %m%n"  />
  </layout>
</appender>
4

1 に答える 1

4

アプリでは、理想的には、異なるロガーを使用するだけで、一般とデータの両方について同じ方法でログを記録する必要があります。構成では、着信ログ メッセージを別のアペンダーに「ルーティング」する方法がいくつかあります。

1 つ目は、ロガー自体です。クラスと名前空間に関してアプリがどのように編成されているかに応じて、名前空間の階層に従ってロガーを階層的に編成します。次に、異なるアペンダーに向かう階層内の異なるブランチを持つことができます。レベルの継承セクションについては、こちらを参照してください。

ロガー階層に加えて、任意の名前をロガー名として使用できます。したがって、アプリの一般的なセクションでは、「一般」という名前のロガーを使用できます。

ログ メッセージ フローを制御するために次に使用できるのは、フィルターの使用です。ロガー名、レベル、プロパティなどでメッセージをフィルタリングしたり、独自のフィルターを実装したりできます。

以下は、logger 要素とフィルターを使用して一般データとデータをアペンダーにルーティングする方法を示すサンプルです。ルート要素 (すべてのログ メッセージを受け取る) をデータ アペンダーにルーティングします。データ アペンダーでは、一般的なロガーからのすべてのメッセージを除外します。

さらに、一般的なロガーを一般的なアペンダーにルーティングします。

<appender name="GeneralLog" type="log4net.Appender.RollingFileAppender">
    ...
</appender>

<appender name="DataLog" type="log4net.Appender.RollingFileAppender">
    <filter type="log4net.Filter.LoggerMatchFilter">
        <loggerToMatch value="general" />
        <acceptOnMatch value="false" />
    </filter>
    ...
</appender>

<root>
    <level value="DEBUG" />
    <appender-ref ref="DataLog" />
</root>

<logger name="general">
    <level value="WARN" />
    <appender-ref ref="GeneralLog" />
</logger>
于 2010-03-09T08:40:52.990 に答える