【解決方法】log4netでログファイルが作成されていません


やあ、

log4net を使用して情報/エラーをログに記録しようとしています。

———————————————-
ありがとう、
ラジェシュワリ

私が試したこと:

これを assemblyinfo.cs ファイルに追加しました

[assembly: log4net.Config.XmlConfigurator(Watch = true)]

および構成ファイルは次のようになります

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
  </configSections>
  <log4net>
    <root>
      <level value="INFO" />     
      <appender-ref ref="RollingFileAppender" />
    </root>    
    
    <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
      <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
      <file value="c:\\LogFiles\\info.log" />      
      <staticLogFileName value="true" />
      <appendToFile value="true" />      
      <rollingStyle value="Size" />
      <maxSizeRollBackups value="5" />
      <maximumFileSize value="1MB" />     
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %level %logger - %message%newline" />
      </layout>
    </appender>
  </log4net> 
  
</configuration>

以下のようにログメソッドを呼び出します

public static class Logger
    {
        private static readonly log4net.ILog log =
            log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
        public static void LogError(String message)
        {
            log4net.Config.XmlConfigurator.Configure();
            log.Info("Application is working");
        }
    }

何が問題なのですか?

解決策 1

すべてのコード サンプルに感謝します。 複製するコンソール プロジェクトを作成しましたが、問題はありませんでした。 フォルダは、作成されたマシンには最初から存在せず、ログファイルは問題なく書き込まれました。

アプリに c:\logfiles ディレクトリへの適切なアクセス許可があることを確認することをお勧めします。

また、別のオプションは追加することです

XML
<appSettings>
      <add key="log4net.Internal.Debug" value="true"/>
   </appSettings>

.config に移動し、log4net によって生成されているデバッグ メッセージを確認します。

解決策 2

次の行を置き換えます。
log4net.Config.XmlConfigurator.Configure();

以下で:

log4net.Config.XmlConfigurator.ConfigureAndWatch(新しい System.IO.FileInfo(AppDomain.CurrentDomain.BaseDirectory + “log4net.config”));

コメント

タイトルとURLをコピーしました