zoukankan      html  css  js  c++  java
  • Asp.net Core 3.1 之NLog使用

    一、新建解决方案,并初始化默认访问路由

     二、Nuget引用

    三、 更改Program.cs文件

    代码如下:

        public class Program
        {
            public static void Main(string[] args)
            {
                NLogBuilder.ConfigureNLog("nlog.config");
                CreateHostBuilder(args).Build().Run();
            }
    
            public static IHostBuilder CreateHostBuilder(string[] args) =>
                Host.CreateDefaultBuilder(args)
                    .ConfigureWebHostDefaults(webBuilder =>
                    {
                        webBuilder.UseStartup<Startup>();
                    }).ConfigureLogging(logging =>
                    {
                        logging.ClearProviders();
                        logging.SetMinimumLevel(LogLevel.Information);
                        logging.AddConsole();
                    }).UseNLog();//其中,UseNLog是拓展方法,需要引入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">
        <targets>
            <target name="defaultlog" xsi:type="File" keepFileOpen="false" encoding="utf-8" fileName="${basedir}/logs/${level}${shortdate}.log" maxArchiveFiles="100" layout="${longdate}|${level:uppercase=true}|${logger}|${message}" />
            <!--fileName值——表示在程序运行目录,分日志级别按天写入日志文件-->
            <!--maxArchiveFiles值——日志文件最大数量,超出则删除最早的文件-->
            <!--layout值——日志内容格式:时间+日志级别+LoggerName+日志内容-->  
      </targets>
        <rules>
            <!--支持将任意级别、任意LoggerName的日志写入target:defaultlog-->
            <!--其中*就表示任意,可以改为"项目命名空间.*",则只输出对应命名空间下的日志。在Info级别尤为明显-->
            <logger name="*" minlevel="trace" writeTo="defaultlog" />
      </rules>
    </nlog>

    五、在Controller中的使用

    代码如下:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Threading.Tasks;
    using Microsoft.AspNetCore.Mvc;
    using Microsoft.Extensions.Logging;
    
    // For more information on enabling Web API for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860
    
    namespace DemoCore.Controllers
    {
        [Route("api/[controller]/[action]")]  //Api控制器
        [ApiController]
        public class HomeController : Controller
        {
            private ILogger _logger;
            public HomeController(ILogger<HomeController> logger)
            {
                _logger = logger;
            }
    
            // GET: api/<controller>
            [HttpGet]
            public IEnumerable<string> Get()
            {
                _logger.LogInformation("测试一下,不要紧张!");
                return new string[] { "value1", "value2" };
            }   
        }
    }

     六、效果预览

  • 相关阅读:
    C++ 模板实现约瑟夫环
    C++实现向文件输出对象并读取对象
    C++实现对本地文件加行号并输出到本地文件
    C++ vector动态容量变化
    C++纯虚函数应用实例
    华为2016研发工程师-删数字
    iOS-宫格拼图
    iOS-审核4.3入坑(已出坑)
    Mac-关闭Mac电脑启动声音(咚~)
    彻底完全卸载SQL Server 2005教程
  • 原文地址:https://www.cnblogs.com/fger/p/12118437.html
Copyright © 2011-2022 走看看