前言
我们需要一个日志Log去记录日常发生的信息,这样方便以后出现问题的时候回去找报错的日志
NLog
NLog 是Log的.net 移植版本,.net 将很多别的已经成熟的第三方库进行了移植。
NLog使用
NLog 官网文档
NLog .net core 官方文档
NLog详细教程-2022/12/01
使用
最简单的配置信息
<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >
<targets>
<!--输出目标:name名称f,xsi:type输出类型文件, fileName输出到程序根目录logs文件夹中, 以日期作为生成log文件名称, layout生成内容的格式-->
<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>
<!--日志路由规则:最低级别Debug,输出到target目标f-->
<logger name="*"
minlevel="Debug"
writeTo="f" />
</rules>
</nlog>
测试
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);
}
}
}
使用结果