[.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)输出。
期許自己~
能以更簡潔的文字與程式碼,傳達出程式設計背後的精神。
真正做到「以形寫神」的境界。
分类:
.NET
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?