0

多くの問題が発生した後、ようやくウィンドウサービス用にlog4netを構成することができました。

私はそれにかなり慣れていません、そして今日私はそれを構成し始めました。私はこれらの疑問を持っています。

1)それを複数のアセンブリに使用する必要があります。log4netの参照がある私のメインアセンブリであるアセンブリ'B'に参照として追加されたアセンブリ'A'があるとします。アセンブリ'A'と'B'の両方をログに記録する必要があります。

2)私のアプリケーションはマルチスレッドであり、多くのスレッドを使用しています。では、log4netはスレッドセーフですか?

3)app.configで以下のconfigを使用しています。私はそれの使用法をあまり知りません。しかし、不要なパラメータは使いたくありません。

<log4net>
     <root>
       <level value="DEBUG"/>
       <appender-ref ref="LogFileAppender"/>
     </root>
     <appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender">
       <param name="File" value="C:\logs\log.txt"/>
       <param name="AppendToFile" value="true"/>
       <rollingStyle value="Size"/>
       <maxSizeRollBackups value="10"/>
       <maximumFileSize value="100KB"/>
       <staticLogFileName value="true"/>
       <layout type="log4net.Layout.PatternLayout">
         <param name="ConversionPattern" value="%-5p%d{yyyy-MM-dd hh:mm:ss} – %m%n"/>
       </layout>
     </appender>   
</log4net>
4

3 に答える 3

1

<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />アペンダーセクションの下で使用します。ロギングのパフォーマンスを向上させます。

log4net はスレッドセーフです。

<maximumFileSize value="10MB" /> //For 100 Kb configuration there will be lot of files.

<datePattern value="_yyyyMMdd" />//日付ごとに新しいファイルを作成するようにロガーに通知します。

Logger の静的クラスを作成し、使用するすべてのアセンブリから静的関数を呼び出します。

ロギングのサンプル クラス:

public static class Logger
    {
        static Logger()
        {
            XmlConfigurator.Configure();
        }

        public static void Log()
        {
            string methodName = new System.Diagnostics.StackFrame(1, true).GetMethod().Name;
            string moduleName = new System.Diagnostics.StackFrame(1, true).GetMethod().ReflectedType.FullName;

            var appLog = LogManager.GetLogger(loggername);
            appLog.Error(...);

        }
    }
于 2012-04-30T08:16:24.483 に答える
0
  1. それは問題ではありません; ILogアセンブリ B で通常どおり使用するだけです。アプリケーションの有効期間中に 1 回
    呼び出すようにしてください。Configure()
  2. はい。
  3. log4net に慣れることをお勧めします。簡単なGoogle 検索またはドキュメントを見るだけでうまくいくはずです。
于 2012-04-30T07:55:19.297 に答える
0
 <root>
       <level value="DEBUG"/>
       <appender-ref ref="LogFileAppender"/>
     </root>

デバッグ モードでのみログに記録されるため、config に次のエントリを作成します。

 <root>
       <level value="ALL"/>
       <appender-ref ref="LogFileAppender"/>
     </root>
于 2012-04-30T08:19:59.380 に答える