目录
一、注入依赖和使用 logger
二、配置记录文件
1.安装插件 NLog
2.创建 nlog.config 配置文件
3. Programs配置日志信息
4. 设置 appsettings.json 的 LogLevel
5. 日志设定文件和日志级别的优先级
(1)常见的日志级别优先级
(2)日志设定文件优先级
三、方便调试查看日志
一、注入依赖和使用 logger
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Diagnostics;
using Microsoft.AspNetCore.Mvc;
namespace ASPNetAPI.Controllers
{
	public class ErrorController控制器名: Controller
	{
		private ILogger<ErrorController控制器名> logger; 
		public ErrorController控制器名(ILogger<ErrorController控制器名> logger) {  // 构造函数里注入ILogger服务(控制器名作为泛型参数)
			this.logger = logger;
		}
	}
	
	[AllowAnonymous]
	[Route("Error")] 
	public IActionResult Error()
	{
		var exceptionHandlerPathFeature = HttpContext.Features.Get<IExceptionHandlerPathFeature>();
		// 记录logger
		logger.LogError($"路径:{exceptionHandlerPathFeature.Path},产生错误:{exceptionHandlerPathFeature.Error}");
		return View("Error");
	}
	
}
二、配置记录文件
1.安装插件 NLog
VS菜单的“专案” > 管理NuGet套件 > 查找到NLog.Web.AspNetCore,安装。
2.创建 nlog.config 配置文件
(1)文件名是nlog.config
(2)放在专案根目录下(项目启动时自动加载该文件)
(3)内容如下:
<?xml version="1.0" encoding="utf-8"?>
<nlog xmlns="http://nlog-project.org/schemas/NLog.xsd"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
	<!-- 定义日志输出目标 -->
	<targets>
		<!-- 控制台输出 -->
		<target name="console" xsi:type="Console" layout="${longdate} ${level} ${message} ${exception}" />
		<!-- 文件输出。fileName若为相对位置,则产生的logs文件夹会放在专案的bin\Debug\net8.0中,也可设置绝对位置:D:\TestLogs\${shortdate}.log -->
		<target name="logfile" xsi:type="File" fileName="logs/${shortdate}.log"
                layout="${longdate} ${level} ${message} ${exception}" />
		<!-- 可选:可以定义更多的目标,如数据库、事件日志、邮件等 -->
	</targets>
	<!-- 定义日志规则 -->
	<rules>
		<!--常见的日志级别有:Trace < Debug < Info < Warn < Error < Fatal -->
		<!-- 控制台输出规则:记录所有级别的日志 -->
		<logger name="*" minlevel="Info" writeTo="console" />
		<!-- 文件输出规则:记录所有级别的日志 -->
		<logger name="*" minlevel="Trace" writeTo="logfile" />
		<!-- 可选:可以为不同的 logger 定义不同的规则 -->
	</rules>
</nlog>
(4)设置属性
右击nlog.config文件,选择“属性”。将“复制到输出目录”设定为“有更新時才复制”。
3. Programs配置日志信息
using NLog.Web;
var builder = WebApplication.CreateBuilder(args);
// 配置 NLog
builder.Logging.ClearProviders();  // 清除默认的日志提供程序
// builder.Logging.AddConsole();  // 添加控制台日志(暂无用)
// builder.Logging.AddDebug();  // 添加调试日志(暂无用)
// builder.Logging.AddEventSourceLogger();  // 添加事件源日志(暂无用)
builder.Host.UseNLog();  // 使用 NLog 作为日志提供程序
4. 设置 appsettings.json 的 LogLevel
注意:
若要使用的是appsettings.Development.json的内容,需要先判定launchSettings.json中设定的ASPNETCORE_ENVIRONMENT是否为Development(若值是Production生产环境,则appsettings.Development.json不起作用,而是appsettings.Production.json起作用,若无appsettings.Production.json,则是appsettings.json起作用)
内容如下:
{
  "Logging": {
    "LogLevel": {
      "Default": "Warning", // 针对所有日志,设置记录等级
      // "Microsoft.AspNetCore": "Warning" // 针对Microsoft的日志
    }
  },
  "ConnectionStrings": {
    "MusicConn": "Host=10.XXX.X.XX;Database=数据库DB;User Id=用户名;Password=密码;"
  }
}
5. 日志设定文件和日志级别的优先级
(1)常见的日志级别优先级
针对nlog.config文件:Trace < Debug < Info < Warn < Error < Fatal
针对appsettings.json文件:Trace < Debug < Information < Warning < Error < Critical
(2)日志设定文件优先级
nlog.config < appsettings.json
三、方便调试查看日志
VS菜单的“工具” > 选项 > 帧错调试 > 输出视窗 > 将“一般输出设定的内容”进行修改(只打开所有调试输出和异常消息,其他都关闭)。
| 
 | 改成 | 
 | 



![[ubuntu-22.04]ubuntu不识别rtl8153 usb转网口](https://i-blog.csdnimg.cn/direct/ae1d1eb23292477f9d36a4890edeae6f.png)












![2-markdown转网页页面设计 --[制作网页模板]](https://i-blog.csdnimg.cn/direct/ed91b55598b84a709227439b5623c206.png#pic_center)




