[.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}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?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");

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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)输出。

posted @   Clark159  阅读(1725)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示