.NET 控制台NLog 使用

前言

我们需要一个日志Log去记录日常发生的信息,这样方便以后出现问题的时候回去找报错的日志

NLog

NLog 是Log的.net 移植版本,.net 将很多别的已经成熟的第三方库进行了移植。

NLog使用

在这里插入图片描述

NLog 官网文档

NLog .net core 官方文档

NLog详细教程-2022/12/01

使用

.NET 控制台NLog 使用_第1张图片

最简单的配置信息


<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >
  <targets>
    
    <target name="f"
            xsi:type="File"
            fileName="${basedir}/logs/${shortdate}.txt"
            layout="${date:format=yyyy-MM-dd HH\:mm\:ss} [${uppercase:${level}}] : ${message}" />
  targets>
  <rules>
    
    <logger name="*"
            minlevel="Debug"
            writeTo="f" />
  rules>
nlog>


.NET 控制台NLog 使用_第2张图片

测试

using NLog.Config;
using NLog;

namespace FuJian_mqtt
{
    internal class Program
    {
        static void Main(string[] args)
        {

            //初始化配置日志
            LogManager.Configuration = new XmlLoggingConfiguration(string.Format("{0}/NLog.config", AppDomain.CurrentDomain.BaseDirectory.ToString()));
            var logger = NLog.LogManager.GetCurrentClassLogger();
            logger.Debug("我修改了日志sss的时间");

            Console.WriteLine("Hello, World!");
        }
    }
}

工具类使用

搭配我之前的彩色控制台打印

C# 控制台彩色打印

彩色打印

using NLog;
using NLog.Config;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Console = Colorful.Console;//这个是重点
namespace FuJian_mqtt.Utils
{
    public static class LogHelper
    {
        private static Logger logger;

        static LogHelper()
        {
            LogManager.Configuration = new XmlLoggingConfiguration(string.Format("{0}/NLog.config", AppDomain.CurrentDomain.BaseDirectory.ToString()));
            logger = NLog.LogManager.GetCurrentClassLogger();
        }

        public static void Debug(object res)
        {
            Console.WriteLine(res);
            logger.Debug(res);
        }

        public static void Info(object res)
        {
            Console.WriteLine(res, Color.LightGreen);
            logger.Info(res);
        }

        public static void Error(object res)
        {
            Console.WriteLine(res, Color.Red);
            logger.Error(res);
        }

        public static void Warning(object res)
        {
            Console.WriteLine(res, Color.Yellow);
            logger.Warn(res);
        }
    }
}

使用结果

.NET 控制台NLog 使用_第3张图片
.NET 控制台NLog 使用_第4张图片

你可能感兴趣的:(C#,小轮子,C#,.net)