zoukankan      html  css  js  c++  java
  • NetCore使用Nlog记录日志

    当前环境: win10+vs2019+netcore3.1

    添加Nuget包引用:NLog.Web.AspNetCore

     2. 添加 nlog.config配置文件 或者安装包 nlog.confg

    <?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="Info"
          internalLogFile="c:	empinternal-nlog.txt">
    
        <!-- enable asp.net core layout renderers -->
        <extensions>
            <add assembly="NLog.Web.AspNetCore"/>
        </extensions>
    
        <!-- the targets to write to -->
        <targets>
            <!-- write logs to file  -->
            <target xsi:type="File" name="allfile" fileName="logs
    log-all-${shortdate}.log"
                    layout="${longdate}|${event-properties:item=EventId_Id}|${uppercase:${level}}|${logger}|${message} ${exception:format=tostring}" />
    
            <!-- another file log, only own logs. Uses some ASP.NET core renderers -->
            <target xsi:type="File" name="ownFile-web" fileName="logs
    log-own-${shortdate}.log"
                    layout="${longdate}|${event-properties:item=EventId_Id}|${uppercase:${level}}|${logger}|${message} ${exception:format=tostring}|url: ${aspnet-request-url}|action: ${aspnet-mvc-action}" />
        </targets>
    
        <!-- rules to map from logger name to target -->
        <rules>
            <!--All logs, including from Microsoft-->
            <logger name="*" minlevel="Trace" writeTo="allfile" />
    
            <!--Skip non-critical Microsoft logs and so log only own logs-->
            <logger name="Microsoft.*" maxlevel="Info" final="true" />
            <!-- BlackHole without writeTo -->
            <logger name="*" minlevel="Trace" writeTo="ownFile-web" />
        </rules>
    </nlog>
    View Code

    3. 在CreateHostBuilder 中添加使用Nlog ( ConfigureLogging)

    public static IHostBuilder CreateHostBuilder(string[] args)
    {
           return Host.CreateDefaultBuilder(args)
                .ConfigureWebHostDefaults(webBuilder =>
                    {
                        webBuilder.UseStartup<Startup>();
                    }).ConfigureLogging(
                        logging =>
                        {
                            // 清除系统默认的日志
                            //logging.ClearProviders();
                            logging.SetMinimumLevel(LogLevel.Trace);
                        }).UseNLog();
    }

    4. 配置文件路径

    NLog.Web.NLogBuilder.ConfigureNLog("nlog.config")

    5. 调用

        public class HomeController : Controller
        {
            private readonly ILogger<HomeController> _logger;
    
            public HomeController(ILogger<HomeController> logger)
            {
                _logger = logger;
                _logger.LogDebug(1, "NLog injected into HomeController");
            }
    
            public IActionResult Index()
            {
                _logger.LogInformation("Hello, this is the index!");
                return View();
            }
    }

    6. 效果

    在binDebug etcoreapp3.1 目录下生成了logs文件夹

  • 相关阅读:
    form表单提交中文乱码(前台中文到JAVA后台乱码)问题及解决
    JSON工具类库: alibaba/fastjson 使用记录
    前台传递给后台的JSON字符串中的引号 “” 在JAVA后台被转义为 "
    AJAX与后台交互传参的两种方式
    小米平板充不上电解决(非硬件问题+系统升级原因)
    对于异常的理解
    solr如何进行搜索实战,关键字全库搜索
    solr5.5.4 添加mysql数据,实现同步更新
    solr5.5.4 tomcat8部署
    log4j通过配置文件配置即,即可完成系统报错想向指定邮箱发送提醒消息,网上的很多方法都又问题
  • 原文地址:https://www.cnblogs.com/wtujvk/p/13222233.html
Copyright © 2011-2022 走看看