• [.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)输出。

  • 相关阅读:
    代码审计之越权及越权
    代码审计之XSS及修复
    代码审计之SQL注入及修复
    代码审计之CSRF原理及修复
    挖穿各大SRC的短信轰炸
    Kerberoasting攻击
    SPN扫描
    Windows认证 | 域认证
    Windows认证 | 网络认证
    Ceph 纠删码介绍
  • 原文地址:https://www.cnblogs.com/clark159/p/2322879.html
Copyright © 2020-2023  润新知