2

Windows フォーム アプリケーションがあり、ファイルへのログ記録に log4net を使用しようとしています。
私のapp.configには次のものがあります:

<log4net debug="false">
    <appender name="LogFileAppender" type="log4net.Appender.FileAppender,log4net" >
      <param name="File" value="C:\...\LogFile.txt" />
      <param name="AppendToFile" value="true" />
      <layout type="log4net.Layout.PatternLayout,log4net">
        <param name="ConversionPattern" value="%n%n%n%d [%t] %-5p %c  - %m%n%n" />
      </layout>
    </appender>
    <root>
      <priority value="ALL" />
      <appender-ref ref="LogFileAppender" />
    </root>
    <category name="DesktopLogger.Form1">
      <priority value="ALL" />
    </category>
</log4net>

そして、私が持っているメインフォームの背後にあるコードでは:

public log4net.ILog    Logger  { get; set; }

プロパティとして、およびフォームの初期化で私は持っています:

log4net.Config.XmlConfigurator.Configure();

this.Logger= LogManager.GetLogger(typeof(Program));

その後、私が持っているクリックボタンイベントで:

this.Logger.Info("text for the logger");

その後、ファイルを開くと、も書き込まれません。ただの空のファイルです。

4

3 に答える 3

1

レイアウトがありません:

<layout type ...>
    <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
</layout>

もちろん、そのレイアウトは好きなものにすることができます。これは単なる例です。

于 2013-07-25T12:43:09.960 に答える
0

同じチュートリアルに従って、あなたと同じ問題がありました。答えは、将来それを使用する他の人に役立つ可能性があります。この構成を使用します。

<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,Log4net"/>
</configSections>
<log4net>
  <root>
    <level value="DEBUG" />
    <appender-ref ref="LogFileAppender" />
  </root>
  <appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender" >
    <param name="File" value="log-file.txt" />
    <param name="AppendToFile" value="true" />
    <rollingStyle value="Size" />
    <maxSizeRollBackups value="10" />
    <maximumFileSize value="10MB" />
    <staticLogFileName value="true" />
    <layout type="log4net.Layout.PatternLayout">
    <param name="ConversionPattern" value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
    </layout>
  </appender>
</log4net>
于 2015-01-26T14:00:50.773 に答える