Console输出日志

实现控制台应用程序输出日志,支持按日志级别自定义文字/背景颜色,调试阶段非常直观。

  1. 在Visual Studio新建控制台应用程序
  2. 项目添加App.config配置文件
  3. 引入log4net(NuGet安装 / 引用log4net.dll)
  4. 编写App.config内log4net配置
  5. 代码初始化log4net并打印日志

控制台日志可以配置不同日志等级对应的前景、背景颜色,区分日志类型。

App.config 配置

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
  </configSections>

  <log4net>
    <!-- 控制台彩色输出附加器 ColoredConsoleAppender -->
    <appender name="ColoredConsoleAppender" type="log4net.Appender.ColoredConsoleAppender">
      <!-- ERROR级别配色 -->
      <mapping>
        <level value="ERROR" />
        <foreColor value="White" />
        <backColor value="Red, HighIntensity" />
      </mapping>
      <!-- DEBUG级别配色 -->
      <mapping>
        <level value="DEBUG" />
        <backColor value="Green" />
      </mapping>
      <!-- INFO级别配色 -->
      <mapping>
        <level value="Info" />
        <backColor value="Yellow" />
      </mapping>
      <!-- WARN、FATAL可自行补充mapping配色 -->

      <!-- 日志输出格式模板 -->
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
      </layout>
    </appender>

    <!-- 根日志器,启用控制台输出 -->
    <root>
      <level value="All" />
      <appender-ref ref="ColoredConsoleAppender" />
    </root>
  </log4net>
</configuration>Code language: HTML, XML (xml)
格式占位符说明
  • %date:日志时间
  • [%thread]:线程编号
  • %-5level:日志级别(占5字符宽度对齐)
  • %logger:日志所属类名
  • %message:日志正文
  • %newline:自动换行

Program.cs

using System;
using log4net;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            // 初始化加载log4net配置
            log4net.Config.XmlConfigurator.Configure();
            // 获取日志实例,传入当前类typeof,方便定位日志来源
            ILog logger = LogManager.GetLogger(typeof(Program));

            // 各级别日志输出
            logger.Info("普通日志");
            logger.Error("错误日志");
            logger.Debug("调试信息");
            logger.Fatal("致命错误");
            logger.Warn("警告信息");

            Console.ReadKey();
        }
    }
}Code language: JavaScript (javascript)

运行效果

控制台不同等级日志自动渲染底色:

  • INFO:黄色背景
  • DEBUG:绿色背景
  • ERROR / FATAL:亮红色背景
  • WARN:黄色背景

输出样例:

2017-03-21 20:35:31,550 [9] INFO  ConsoleApplication1.Program [(null)] - 普通日志
2017-03-21 20:35:31,592 [9] ERROR ConsoleApplication1.Program [(null)] - 错误日志
2017-03-21 20:35:31,592 [9] DEBUG ConsoleApplication1.Program [(null)] - 调试信息
2017-03-21 20:35:31,593 [9] FATAL ConsoleApplication1.Program [(null)] - 致命错误
2017-03-21 20:35:31,594 [9] WARN  ConsoleApplication1.Program [(null)] - 警告信息Code language: CSS (css)

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注