.net core 3.1 添加 Nlog日志

.net core 3.1 添加 Nlog日志

交流QQ群:555913397
有什么问题可以加群大家一起交流

1.添加Nuget程序包

1.1 NLog 
1.2 NLog.Web.AspNetCore

2.创建Nlog配置文件

2.1创建的文件名称为 nlog.config (ps:也可以自定义其他名字,加载配置文件时修改为自定义的名称即可)
2.2 下面配置文件打印出来的效果如下图
![在这里插入图片描述](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9ub3RlLnlvdWRhby5jb20veXdzL3B1YmxpYy9yZXNvdXJjZS82ZjBmY2U5YTBiNTcxMGJjMTQyNTc3MjZjMzEzNTdmZC94bWxub3RlL0EzREJCNjNDNzEzNzQ3RjBBOUYxMDdGQUY0MjJGOTRGLzIyNjU?x-oss-process=image/format,png)
<?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">
    <!-- 启用.net core的核心布局渲染器 -->
    <extensions>
        <add assembly="NLog.Web.AspNetCore" />
    </extensions>
    <!-- 写入日志的目标配置 -->
    <targets>
        <!-- 调试  -->
        <target xsi:type="File" name="debug" fileName="logs/debug-${shortdate}.log" layout="${longdate}|${event-properties:item=EventId_Id}|${uppercase:${level}}|${logger}|${message} ${exception:format=tostring}|url: ${aspnet-request-url}|action: ${aspnet-mvc-action}" />
        <!-- 警告  -->
        <target xsi:type="File" name="warn" fileName="logs/warn-${shortdate}.log" layout="${longdate}|${event-properties:item=EventId_Id}|${uppercase:${level}}|${logger}|${message} ${exception:format=tostring}|url: ${aspnet-request-url}|action: ${aspnet-mvc-action}" />
        <!-- 错误  -->
        <target xsi:type="File" name="error" fileName="logs/error-${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>
        <!-- 调试  -->
        <logger name="*" minlevel="Trace" maxlevel="Debug" writeTo="debug" />
        <!--跳过不重要的微软日志-->
        <logger name="Microsoft.*" maxlevel="Info" final="true" />
        <!-- 警告  -->
        <logger name="*" minlevel="Info" maxlevel="Warn" writeTo="warn" />
         <!-- 错误  -->
        <logger name="*" minlevel="Error" maxlevel="Fatal" writeTo="error" />
    </rules>
</nlog>

3.Program.cs 添加Nlog

 public static void Main(string[] args)
        {
            //这里添加Nlog
            var logger = NLog.Web.NLogBuilder.ConfigureNLog("nlog.config").GetCurrentClassLogger();
            try
            {
                //测试Nlog日志输出
                logger.Debug("init main");
                CreateHostBuilder(args).Build().Run();
            }
            catch (Exception exception)
            {
                logger.Error(exception, "Stopped program because of exception");
                throw;
            }
            finally
            {
                NLog.LogManager.Shutdown();
            }
        }

        public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
                .ConfigureWebHostDefaults(webBuilder =>
                {
                    webBuilder.UseStartup<Startup>();
                })
            //使用Nlog
            .UseNLog()
            //添加Autofac容器
            .UseServiceProviderFactory(new AutofacServiceProviderFactory());
    }

4.在控制器通过构造方法注入实现写日志功能

    public class HomeController : Controller
    {
        //Nlog构造方法注入
        private readonly ILogger<HomeController> _logger;
        private readonly IPeople _people;

        public HomeController(ILogger<HomeController> logger, IPeople people)
        {
            //Nlog构造方法注入
            _logger = logger;
            _people = people;
            _logger.LogDebug("这里是homeController构造方法");
        }

        public IActionResult Index()
        {
            //使用Nlog写日志
            _logger.LogDebug("这里是homeController");
            return View();
        }

        public IActionResult Privacy()
        {
            return View();
        }

        [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
        public IActionResult Error()
        {
            return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
        }
    }
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值