前言 :
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)输出。
