0

私のプロジェクトはC#(Windowsフォーム).net3.5です

私のコードには複数のイベントがあり、各イベントで複数の検索が実行されています。

イベントごとにログファイルを作成する必要があり、複数の検索でこの単一のログファイルにアクセスして書き込むことができます。

問題は、動的(実行時に設定)名で複数のログを作成するためにlog4netを使用する方法がわからないことです。

そこに設定する方法場所(パス)

私は自分の問題に関してインターネットを探索しましたが、このタイプの問題に対処するヘルプは見つかりませんでした。

任意のアイデアpls

4

1 に答える 1

0

log4net通常、複数のソースとアペンダーを持つために使用されます。定義されたソースを生成するには、LogManager に名前付きログを要求します。通常、ログを識別するためにタイプを使用しますが、必要に応じて文字列を自由に使用してください。

    var myLog = LogManager.GetLogger("NAME");
....
    var myLog = LogManager.GetLogger(GetType());

最初のケースでは logger は で識別され"NAME"、2 番目のケースでは名前空間を持つ型名によって識別されます。次に、すべてのログに対して、それらのサブセットに対して、フィルターなどを使用して、アペンダーを構成できます。例を見てみましょう:

<configuration>

  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>

  </configSections>
  <log4net>

<appender name="MYFILE" type="log4net.Appender.RollingFileAppender">
  <file value=".\logs\myname.log"/>
  <appendToFile value="true"/>
  <rollingStyle value="Size"/>
  <maxSizeRollBackups value="10"/>
  <maximumFileSize value="10MB"/>
  <staticLogFileName value="true"/>
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%date %-5level (%thread) %logger - %message%newline"/>
  </layout>
</appender>

<root>
  <level value="INFO"/>
  <!-- all logger append to these appenders />
   <appender-ref ref="xxxxxx"/>

</root>
<logger name="NAME">
  <level value="INFO"/>

  <appender-ref ref="MYFILE"/>
</logger>
<!-- add other appender here -->

アプリケーションの開始時に電話することを忘れないでくださいXmlConfigurator.Configure();

于 2012-10-05T13:04:32.740 に答える