我有一个使用 log4net 记录错误的 .net core web api。我有一个控制台附加程序和一个文件附加程序,现在想要集成滚动条日志记录。
Rollbar 在其用于 log4net 的插件包中有一个自定义附加程序,因此我尝试在 log4net 的配置文件中添加附加程序,但在 Rollbar 上没有看到任何日志。我可以直接调用 Rollbars 记录器,并且能够在 rollbar UI 中查看日志。
我已将我的项目令牌添加到 Rollbar:
RollbarLocator.RollbarInstance.Configure(
new RollbarConfig("MY_PROJECT_TOKEN"));
这可以很好地将日志发送到 Rollbar:
RollbarLocator.RollbarInstance.Logger.Error("direct logging with rollbar");
但是现在我希望使用 log4net 将日志记录显示在 Rollbar 中,所以我将 Rollbar appender 添加到 log4net 配置中,如下所示:
<appender name="RollbarAppender" type="Rollbar.PlugIns.Log4net.RollbarAppender, Rollbar.Plugins.Log4net">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
</layout>
</appender>
<root>
<level value="INFO" />
<appender-ref ref="ConsoleAppender" />
<appender-ref ref="RollingFileAppender" />
<appender-ref ref="RollbarAppender" />
</root>
<logger name="Microsoft.AspNetCore" additivity="false">
<level value="ERROR" />
<appender-ref ref="ConsoleAppender" />
<appender-ref ref="RollingFileAppender" />
<appender-ref ref="RollbarAppender" />
</logger>
<logger name="Microsoft.AspNetCore.Hosting.Internal.WebHost" additivity="false">
<level value="INFO" />
<appender-ref ref="ConsoleAppender" />
<appender-ref ref="RollbarAppender" />
</logger>
我还尝试以编程方式添加:
var appender = new Rollbar.PlugIns.Log4net.RollbarAppender(
new RollbarConfig("MY_PROJECT_TOKEN"),
TimeSpan.MaxValue);
((log4net.Repository.Hierarchy.Logger) Log.Logger).AddAppender(appender);
我在启动时没有收到任何错误,因此附加程序似乎加载得很好,但是当我使用 log4net 登录时,我仍然没有看到任何记录到 Rollbar 的内容。