log4net - 一个记录器,多个附加程序

log4net - One logger, multiple appenders

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

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

使用代码如下:

GeneralLogger.Info("A log entry");

现在我想在不更改我的应用程序代码的情况下添加另一个附加程序以同时将这些相同的日志条目发送到 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?有人可以告诉我至少这部分配置是否正确(关于添加多个日志附加程序)

谢谢

已解决

上面的配置确实正确。很好地记录以备将来使用:)

事实证明,日志记录失败的原因是我使用的附加程序(Chris Fulstow and/or Matthew Steeples 的 log4net.SignalR 附加程序,有两个相同的,即使在 Nuget 中也是如此!) - 它在正常工作之前需要进行一些调整,而且文档很少。

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