簡體   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