「NLog」與「Sql Server」資料庫的完美搭配

一、前言

筆者工作時會將應用程式的資訊透過 NLog 寫入 Db(Sql Server)。為了日後方便記憶,因此文章就這樣誕生了~

二、開發環境

  • 整合開發環境:Visual Studio 2019
  • 語言:C#
  • .net framework:4.6.2

三、Nuget

安裝套件

  • NLog
  • NLog.Config
  • NLog.Schema

圖、套件清單

四、操作步驟

圖、修改 NLog.config 的 target、logger 元素

  • NLog.config 設定
<targets>
    <target name="database" xsi:type="Database">
        <connectionStringName>DefaultConnection</connectionStringName>
        <!--<connectionString>Data Source=(LocalDb)\MSSQLLocalDB;Initial Catalog=XXX;Integrated Security=True</connectionString>-->
        
       <commandText>
            INSERT INTO [dbo].[Log]
                ([MachineName]
                ,[Logged]
                ,[Level]
                ,[Message]
                ,[Logger]
                ,[Callsite]
                ,[Exception])
            VALUES
                (@MachineName
                ,@Logged
                ,@Level
                ,@Message
                ,@Logger
                ,@Callsite
                ,@Exception);
        </commandText>

        <parameter name="@MachineName" layout="${machinename}" />
        <parameter name="@Logged" layout="${date}" />
        <parameter name="@Level" layout="${level}" />
        <parameter name="@Message" layout="${message}" />
        <parameter name="@Logger" layout="${logger}" />
        <parameter name="@Callsite" layout="${callsite}" />
        <parameter name="@Exception" layout="${exception:tostring}" />
    </target>
</targets>
<rules>
    <logger name="*" minlevel="Debug" writeTo="database" />
</rules>

圖、使用 nlog

原始碼 c#

public void LogDbTest()
{
    try
    {
        throw new Exception("Test");
    }
    catch (Exception e)
    {
        var log = LogManager.GetCurrentClassLogger();
        log.Error(e, $"Error : {e.Message}");
    }
}

圖、執行後結果

五、相關連結

  1. 使用「NLog」來記錄應用程式的大小事吧

六、參考

  1. NLog Tutorial
  2. NLog Nuget

留言

這個網誌中的熱門文章

使用「Visual Studio 2019」建置 Windows 服務

「Chrome Headless」隱藏瀏覽器的介面,讓爬蟲程式偷偷的執行

使用「ADO.NET」 進行資料庫的讀取、新增、修改、刪除的操作

「SonarLint」程式碼品質最佳利器

「軟體三層式架構」介紹與實作

「Git」安裝

「Bonobo Git Server」安裝

使用「Visual Studio 2019」進行網站負載測試

如何取得 FaceBook 的「應用程式編號」、「應用程式密鑰」。

使用「Vue Cli」建立、打包、安裝 專案