首頁 > 軟體

Nlog紀錄檔框架整合Seq擴充套件包

2022-02-15 10:02:04

什麼是Seq?

正如我們使用不同的紀錄檔框架來為我們的應用程式收集各類紀錄檔資訊, 這些資訊可以有效的幫助我們快速診斷應用程式中發生的各類問題, 儘管如此,對於常見的紀錄檔框架而言, 它們往往只是解決了紀錄檔功能快速整合以及如何設定輸出儲存等功能。

對於那些不間斷執行的應用程式而言, 紀錄檔的儲存和維護工作會變得異常麻煩, 如果想靈活的在不同時間段去查詢紀錄檔, 根據不同的紀錄檔型別快速的定位問題,

這會變得非常困難,所以為了解決這些問題, Seq就登場了。Seq提供了收集應用程式紀錄檔、搜尋過濾、警告以及圖表分析等功能。

如何使用Seq?

如果你使用了類似Nlog、Serilog等紀錄檔框架, 那很棒, 對於你來說,你幾乎可以很少的設定它即可快速的實現Seq整合。Seq提供了Nlog、Serilog、Log4Net等框架的Seq擴充套件包。

首先, 你需要安裝且設定好Seq, 官方提供了兩種方式快速建立Seq服務

出於演示的目的, 這裡直接安裝Docker映象來演示:

  • 下載Seq Docker映象
    docker pull datalust/seq

  • 啟動Seq範例, 本地埠5341
    docker run --name seq -d --restart unless-stopped -e ACCEPT_EULA=Y -p 5341:80 datalust/seq:latest

  • 開啟瀏覽器輸入,即可

完成Seq的設定之後, 接下來在應用程式當中安裝Nlog、Nlog.Config、NLog.Targets.Seq。

開啟Nlog.Config,設定Seq:

<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd"
      autoReload="true"
      throwExceptions="false"
      internalLogLevel="Off" internalLogFile="c:tempnlog-internal.log">

  <extensions>
    <add assembly="NLog.Targets.Seq"/>
  </extensions>
  
  <targets>
    <target xsi:type="File" name="f" fileName="${basedir}/logs/${shortdate}.log"
            layout="${longdate}|${event-properties:item=EventId_Id:whenEmpty=0}|${uppercase:${level}}|${logger}|${message} ${exception:format=tostring}"  />

    <target name="seq" xsi:type="BufferingWrapper" bufferSize="1000" flushTimeout="2000">
      <target xsi:type="Seq" serverUrl="http://localhost:5341" apiKey="" />
    </target>
  </targets>

  <rules> 
    <logger name="*" minlevel="Debug" writeTo="seq" /> 
  </rules>
</nlog>

以上完成了Nlog的設定, 當應用程式輸出Debug的時候, 即可將資訊寫入至Seq。

應用程式呼叫Debug輸出:

private void Button_Click_3(object sender, RoutedEventArgs e)
        {
            logger.LogDebug("Button_Click_3");
        }

再次瀏覽器開啟Seq的服務地址, 會記錄所有點選Debug的詳細資訊, 如下所示:

Seq的其他功能

紀錄檔儲存到Seq伺服器已經完成,剩下的工作就是如果使用Seq整合的搜尋、過濾、圖示分析等功能, 來快速診斷應用程式當中的警告、錯誤資訊等,
通過不同的紀錄檔分析, 我們很可能快速的預知存在問題所在, 這些甚至可以在客戶未察覺異常之前, 我們可以快速的做出響應。

關於Seq的更多使用方法,及高階用法, 可參考官方檔案,考慮Seq也是一個收費性質的框架,就不做過多的介紹,不過有興趣的可以深入瞭解。

到此這篇關於Nlog紀錄檔框架整合Seq擴充套件包的文章就介紹到這了。希望對大家的學習有所幫助,也希望大家多多支援it145.com。


IT145.com E-mail:sddin#qq.com