使用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,运行代码时会在目录下创建该日志文件夹:

 

posted @ 2021-03-24 19:51  kueizheng  阅读(1)  评论(0)    收藏  举报