摘要:[.NET] Log4net訊息輸出 Tab符號(Tab Character)
前言 :
Log4net是一個很方便用來做Log的第三方軟體。
但在輸出訊息的部分,卻很弔詭的「部分支援」輸出 Tab符號(Tab Character)。
所謂的「部分支援」是說,
在訊息內容的部分有支援,但是訊息Layout的部分不支援。
這讓開發人員做訊息排版的時候,受到很大的限制。
本篇文章記錄,
如何在使用Log4net輸出Log訊息的時候,能夠讓支援 Tab符號(Tab Character)。
希望能幫助有需要的開發人員。
實做 :
實做的方式,主要是使用 Log4net自訂參數的功能,
加入自訂的 Tab符號(Tab Character),來達成支援訊息輸出 Tab符號(Tab Character)。
步驟為 :
1. 在log4net設定檔裡使用自訂參數 tab。
使用格式為 : %X{tab}
<?xml version="1.0"?> <log4net> <!-- Logger --> <logger name="Default"> <level value="ALL" /> <appender-ref ref="Default" /> </logger> <!-- Appender --> <appender name="Default" type="log4net.Appender.RollingFileAppender"> <file value="ConsoleApplication1.log" /> <appendToFile value="true" /> <immediateFlush value="true" /> <maximumFileSize value="100K"/> <maxSizeRollBackups value="1"/> <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss.fff} %m %X{tab} ----- %n" /> </layout> <staticLogFileName value="true"/> <rollingStyle value="Size"/> </appender> </log4net>
2. 在程式碼裡對 log4net加入自訂參數 tab。
加入方式為 : log4net.MDC.Set("tab", "\t");
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// 初始化 log4net
log4net.Config.XmlConfigurator.Configure(new System.IO.FileInfo("log4net.xml"));
// 加入自訂參數 tab
log4net.MDC.Set("tab", "\t");
// 寫 Log
log4net.LogManager.GetLogger("Default").Error("Sample message1");
log4net.LogManager.GetLogger("Default").Error("Sample message12");
log4net.LogManager.GetLogger("Default").Error("Sample message123");
// 結束 log4net
log4net.LogManager.Shutdown();
}
}
}
完成上面步驟之後,
就照一般 Log4net的使用方式,輸出 Log訊息。
檢視輸出的Log檔案,可以發現已經正確的支援 Tab符號(Tab Character)輸出。
能以更簡潔的文字與程式碼,傳達出程式設計背後的精神。
真正做到「以形寫神」的境界。