主控台記錄輸出

實現主控台應用程式輸出記錄,支援依記錄等級自訂文字與背景顏色,除錯階段閱讀體驗相當直觀。

  1. 在Visual Studio建立新的主控台應用程式專案
  2. 於專案加入App.config組態檔
  3. 匯入log4net(透過NuGet安裝 / 參考log4net.dll)
  4. 編寫App.config當中的log4net設定
  5. 程式碼初始化log4net,並輸出記錄

主控台記錄可以針對不同記錄等級設定前景、背景色彩,方便分辨記錄類型。

App.config 組態設定

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
  </configSections>

  <log4net>
    <!-- 主控台彩色輸出附加器 ColoredConsoleAppender -->
    <appender name="ColoredConsoleAppender" type="log4net.Appender.ColoredConsoleAppender">
      <!-- ERROR等級色彩設定 -->
      <mapping>
        <level value="ERROR" />
        <foreColor value="White" />
        <backColor value="Red, HighIntensity" />
      </mapping>
      <!-- DEBUG等級色彩設定 -->
      <mapping>
        <level value="DEBUG" />
        <backColor value="Green" />
      </mapping>
      <!-- INFO等級色彩設定 -->
      <mapping>
        <level value="Info" />
        <backColor value="Yellow" />
      </mapping>
      <!-- WARN、FATAL可自行新增對應色彩對應規則 -->

      <!-- 記錄輸出格式範本 -->
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
      </layout>
    </appender>

    <!-- 根記錄器,開啟主控台輸出 -->
    <root>
      <level value="All" />
      <appender-ref ref="ColoredConsoleAppender" />
    </root>
  </log4net>
</configuration>Code language: HTML, XML (xml)
格式占位符說明
  • %date:記錄產生時間
  • [%thread]:執行緒編號
  • %-5level:記錄等級(佔5個字元寬度對齊)
  • %logger:記錄對應的類別名稱
  • %message:記錄內容本體
  • %newline:自動換行

Program.cs

using System;
using log4net;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            // 載入並初始化log4net組態
            log4net.Config.XmlConfigurator.Configure();
            // 取得記錄器執行個體,傳入目前類別型別,方便追蹤記錄來源
            ILog logger = LogManager.GetLogger(typeof(Program));

            // 輸出各種等級的記錄
            logger.Info("一般記錄");
            logger.Error("錯誤記錄");
            logger.Debug("偵錯資訊");
            logger.Fatal("嚴重錯誤");
            logger.Warn("警告資訊");

            Console.ReadKey();
        }
    }
}Code language: JavaScript (javascript)

執行畫面效果

主控台會依不同記錄等級自動顯示對應底色:

  • INFO:黃色背景
  • DEBUG:綠色背景
  • ERROR / FATAL:亮紅色背景
  • WARN:黃色背景

輸出範例:

2017-03-21 20:35:31,550 [9] INFO  ConsoleApplication1.Program [(null)] - 一般記錄
2017-03-21 20:35:31,592 [9] ERROR ConsoleApplication1.Program [(null)] - 錯誤記錄
2017-03-21 20:35:31,592 [9] DEBUG ConsoleApplication1.Program [(null)] - 偵錯資訊
2017-03-21 20:35:31,593 [9] FATAL ConsoleApplication1.Program [(null)] - 嚴重錯誤
2017-03-21 20:35:31,594 [9] WARN  ConsoleApplication1.Program [(null)] - 警告資訊Code language: CSS (css)

主控台記錄輸出

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *