繁体   English   中英

如何将 rollbar appender 添加到 log4net

[英]how to add rollbar appender to log4net

我有一个 .net 核心 web api,它使用 log4net 记录错误。 我有一个控制台 appender 和一个文件 appender,现在想要集成滚动条日志记录。

Rollbar 在他们的 log4net 插件包中有一个自定义 appender,所以我尝试在我的 log4net 配置文件中添加 appender,但我没有在 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);

我在启动时没有收到任何错误,因此 appender 似乎加载得很好,但是当我使用 log4net 登录时,我仍然没有看到任何记录到 Rollbar 的内容。

您需要做的就是确保将 RollbarAppender 添加到您的 log4net.config 中,例如:

    <appender name="rollbar" type="Rollbar.PlugIns.Log4net.RollbarAppender, Rollbar.PlugIns.Log4net">
        <layout type="log4net.Layout.PatternLayout">
          <conversionPattern value="%date [%thread] %level %logger - %message%newline" />
        </layout>
  </appender>

并确保您的 Rollbar 配置文件appsettings.json (与 log4net.log 并排)包含 Rollbar 特定的配置设置:

{
  "Rollbar": {
    "AccessToken": "NNNNNNNNNNNNNNNNNNNNN",
    "Environment": "RollbarNetSamples",
    "Enabled": true,
    "MaxReportsPerMinute": 30,
    "ReportingQueueDepth": 120,
    "LogLevel": "Debug",
    "ScrubFields": [
      "ThePassword",
      "TheSecret"
    ],
    "Person": {
      "UserName": "jbond",
      "id":  "JBOND"
    },
    "PersonDataCollectionPolicies": "Username, Email",
    "IpAddressCollectionPolicy": "CollectAnonymized"
  },
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM