log4net - 一个记录器,多个appender

时间:2016-05-20 12:27:55

标签: logging signalr log4net log4net-configuration

我有一个现有的应用程序,它将我当前需要的所有信息记录到日志文件中(log4net.Appender.RollingFileAppender)

public static readonly ILog GeneralLogger = LogManager.GetLogger("GeneralLogger");

在下面的代码中使用:

GeneralLogger.Info("A log entry");

现在我希望在不更改我的应用程序代码的情况下添加另一个appender,同时将这些相同的日志条目发送到SignalR(log4net.SignalR.SignalrAppender)

我想我会尝试做以下事情:

<log4net>
    <appender name="GeneralLogAppender" type="log4net.Appender.RollingFileAppender">
      <file value="logs\general_" />
      <appendToFile value="true" />
      <staticLogFileName value="false" />
      <rollingStyle value="Date" />
      <datePattern value="yyyyMMdd'.log'" />
      <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level - %message%newline" />
      </layout>
    </appender>

    <appender name="GeneralLogSignalRAppender" type="log4net.SignalR.SignalrAppender, log4net.SignalR">
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date %-5level - %message%newline" />
        </layout>
    </appender>

    <logger name="GeneralLogger">
        <level value="ALL" />
        <appender-ref ref="GeneralLogAppender" />
        <appender-ref ref="GeneralLogSignalRAppender" />
    </logger>
</log4net>

但我没有得到任何数据记录到SignalR?有人可以告诉我,至少我的配置的这部分是否正确(关于添加多个日志追加器)

由于

1 个答案:

答案 0 :(得分:0)

<强>分辨

上面的配置确实是正确的。值得注意以备将来使用:)

事实证明,记录失败的原因是我使用的追加者(Chris Strongstow和/或Matthew Steeples的 log4net.SignalR appender ,即使在Nuget中也有两个相同!) - 它需要进行一些调整才能正常工作并且文档很少。

如果有人需要帮助,我很乐意提供帮助。