使用Nlog日志
Nuget:NLog.Web.AspNetCore
添加nlog.config日志配置文件:
<?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" autoReload="true" internalLogLevel="Warn" internalLogFile="internal-nlog.txt"> <!-- 定义日志目标 --> <targets> <!-- 将日志写入文件 --> <!--<target xsi:type="File" name="allfile" fileName="Loggers/${shortdate}.log" layout="${longdate}|${logger}|${uppercase:${level}}|${message} ${exception}" />--> <target xsi:type="Null" name="blackhole" /> <target xsi:type="File" name="ownfile" fileName="Loggers/${shortdate}.log" layout="${longdate}|${logger}|${uppercase:${level}}| ${message} ${exception}" /> </targets> <rules> <!-- 所有日志,包括来自Microsoft的日志 --> <!--<logger name="*" minlevel="Trace" writeTo="allfile" />--> <!-- 跳过Microsoft日志,只记录自己的日志 --> <logger name="Microsoft.*" minlevel="Trace" writeTo="blackhole" final="true" /> <logger name="*" minlevel="Trace" writeTo="ownfile" /> </rules> </nlog>
然后在Program类进行配置:
public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .ConfigureLogging((ILoggingBuilder logBuilder) => { logBuilder.AddNLog(); logBuilder.AddConsole(); NLog.LogManager.LoadConfiguration("Config/nlog.config"); }) .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup<Startup>(); });
控制器的构造函数里面进行赋值:
public UserController(IUser user, ILogger<UserController> logger, IMapper mapper) { _user = user; this.mapper = mapper; this.logger = logger; }
然后使用:
//根据配置文件里面的LogLevel值来设置记录等级,如果值是Warning,那么LogTrace、LogDebug、LogInformation均不会记录 logger.LogTrace("Trace(跟踪)"); logger.LogDebug("Debug(调试)"); logger.LogInformation("Information(信息)"); logger.LogWarning("Warning(警告)"); logger.LogError("Error(错误)"); logger.LogCritical("Critical(严重)");
OK,运行代码时会在目录下创建该日志文件夹:
![]()

浙公网安备 33010602011771号