介紹一個.Net遠端日誌元件

IWing發表於2023-04-17

對於軟體開發的階段和正式執行階段,我們都需要檢視日誌來診斷出現的問題。不過,在檢視日誌時需要登入伺服器,找到特定的日誌檔案,再檢視其中的內容,這顯然不是很方便。

為了解決這個問題,我們可以使用遠端日誌,讓所有的程式產生的日誌都可以透過一個 web 頁面進行統一檢視。這種方式可以使得維護工作更加方便。

Jack.RemoteLog 是一個提供全文檢索功能的遠端日誌元件,僅需要簡單的安裝和配置即可使用。

部署日誌伺服器程式

首先,我們先部署一下RemoteLog的伺服器端。

直接下載執行

https://cccscls-my.sharepoint.com/:f:/g/personal/jack_mutc_ca/Et7VbP7sX31EiN-NQkPL0RgBL5RBG15_PyepR5Tx0PaqsQ?e=BTngox

下載對應作業系統的RemoteLogServer壓縮檔案,解壓後,執行Jack.RemoteLog.WebApi.exe(windows)或者Jack.RemoteLog.WebApi(linux)

也可以用Docker安裝

docker pull jackframework/jackremotelogwebapi:latest


程式中使用RemoteLog

在appsettings.json檔案中,設定日誌伺服器url

  "Logging": {
    "ServerUrl": "http://127.0.0.1:9000",
    "ContextName": "YourContextName",
    "LogLevel": {
      "Default": "Debug"
    },
    "Console": {
      "LogLevel": {
        "Default": "Information"
      }
    }
  }

在工程中引用 nuget 包:Jack.RemoteLog
註冊 Jack.RemoteLog 為底層日誌處理引擎

            services.AddLogging(builder =>
            {
                builder.AddConfiguration(configuration.GetSection("Logging"));
                builder.AddConsole();
                builder.UseJackRemoteLogger(configuration);
            });

如果 RemoteLog 伺服器端設定了身份驗證,則這裡需要設定使用者名稱、密碼

            services.AddLogging(builder =>
            {
                builder.AddConfiguration(configuration.GetSection("Logging"));
                builder.AddConsole();
                builder.UseJackRemoteLogger(configuration , new Options 
                {
                       UserName = "",
                       Password = ""
                });
            });

當您使用 ILogger 介面例項來記錄資訊時,該資訊將被記錄到日誌伺服器。

而要檢視伺服器上的所有日誌,您可以透過瀏覽器開啟 http://127.0.0.1:9000,然後可以輕鬆地獲取你的程式日誌以進行監視和分析。

image

原始碼地址:

https://github.com/simpleway2016/JackRemoteLog



相關文章