2

以下のxml構成を使用して、remotingappender用にlog4netを構成すると、すべて機能します。

<log4net>
  <appender name="RemotingAppender" type="log4net.Appender.RemotingAppender" >
    <sink value="tcp://localhost:8085/LoggingSink" />
    <lossy value="false" />
    <bufferSize value="1" />
    <onlyFixPartialEventData value="true" />
  </appender>
  <root>
    <level value="ALL" />
    <appender-ref ref="RemotingAppender" />
  </root>
</log4net>

コードでも同じことをしたいです。少し検索して、次のような例を見つけました。しかし、私はそれを機能させることができませんでした。

        ILog log = log4net.LogManager.GetLogger("logName");
        Repository.Hierarchy.Logger l = (Repository.Hierarchy.Logger)log.Logger;

        // set level
        l.Level = l.Hierarchy.LevelMap["ALL"];
        // create appander
        Appender.RemotingAppender remotingAppender = new Appender.RemotingAppender();
        remotingAppender.Name = "custom";
        remotingAppender.Sink = "tcp://localhost:8085/LoggingSink";
        remotingAppender.Lossy = false;
        remotingAppender.BufferSize = 1;
        //remotingAppender.Fix = log4net.Core.FixFlags.All;
        // create pattern
        log4net.Layout.PatternLayout layout = new log4net.Layout.PatternLayout();
        layout.ConversionPattern = "%d [%thread] %-5p %c [%a] - %m [%line] [%M]%n";
        layout.ActivateOptions();

        remotingAppender.Layout = layout;
        remotingAppender.ActivateOptions();

        // add appender
        l.AddAppender(remotingAppender);
        // perform logging (doesnt work)
        log.Warn("my warning");
        log.Error("my error");

私のコードに欠けている面は何ですか?

4

2 に答える 2

0

log4net.Config.BasicConfigurator.Configure(...)oveloadsの1つを試してください。

于 2012-04-19T06:13:46.363 に答える
0

私はついにそれを機能させます。私は最初にほとんど空のxml構成をロードします。次に、リモーティングリスナーと同じパターン文字列を持つパターンレイアウトを配置します。変更したxmlファイルは次のとおりです。

<log4net>
  <root>
    <level value="ALL" />
  </root>
</log4net>

そして、アプリケーションの開始時にこの構成をロードします(program.c)

log4net.Config.XmlConfigurator.Configure(file)
于 2014-03-17T09:57:13.377 に答える