首页 > 编程语言 >asp.net core NLog将日志写到文件

asp.net core NLog将日志写到文件

时间:2023-06-05 17:04:32浏览次数:45  
标签:core asp app dBContext NLog nlog logger config public

1、安装Nlog包

Install-Package NLog.Extensions.Logging -Pre

2、在项目添加nlog.config文件

asp.net core NLog将日志写到文件_配置文件

 2.1、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">

  <!-- define various log targets -->
  <targets>
    <!-- write logs to file -->
    <target xsi:type="File" name="allfile" fileName="Loggers/${shortdate}.log"
                 layout="${longdate}|${logger}|${uppercase:${level}}|${message} ${exception}" />


    <target xsi:type="File" name="ownFile-web" fileName="Loggers/${shortdate}.log"
             layout="${longdate}|${logger}|${uppercase:${level}}|  ${message} ${exception}" />

    <target xsi:type="Null" name="blackhole" />
  </targets>

  <rules>
    <!--All logs, including from Microsoft-->
    <logger name="*" minlevel="Trace" writeTo="allfile" />

    <!--Skip Microsoft logs and so log only own logs-->
    <logger name="Microsoft.*" minlevel="Trace" writeTo="blackhole" final="true" />
    <logger name="*" minlevel="Trace" writeTo="ownFile-web" />
  </rules>
</nlog>

3、在项目中添加project.json 配置文件

asp.net core NLog将日志写到文件_配置文件_02

 

  3.2、project.json 文件内容

{
  "publishOptions": {
    "include": [
      "wwwroot",
      "Views",
      "appsettings.json",
      "web.config",
      "Config/nlog.config" //加上nlog配置文件
    ]
  }
}

4、在Startup.cs 中Configure方法添加如下代码

// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IHostingEnvironment env,ILoggerFactory loggerFactor)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }

            //此方法被LogManager.LoadConfiguration替代 
            //loggerFactor.ConfigureNLog("Config/nlog.config");
            //加载Nlog的nlog.config配置文件
            LogManager.LoadConfiguration("Config/nlog.config");
            //添加NLog
            loggerFactor.AddNLog();

            app.UseMvcWithDefaultRoute();

            app.Run(async (context) =>
            {
                await context.Response.WriteAsync("Hello World!");
            });
        }

5、Controller 调用Nlog 方法

public class BlogController : Controller
    {
        private TestDBContext dBContext;
        private readonly ILogger<BlogController> logger;
        public BlogController(TestDBContext _dBContext, ILogger<BlogController>  _logger)
        {
            dBContext = _dBContext;
            logger = _logger;
        }

        public IActionResult Index()
        {
            logger.LogInformation("你访问了首页55555");
            logger.LogWarning("警告信息55555");
            logger.LogError("错误信息55555");

            var list = dBContext.Blog.Select(a => new BlogViewModel() {
                CreateTime = a.CreateTime,
                Id = a.BlogId,
                Title = a.Title,
                Url = a.Url
            }).ToList();
            return View(list);
        }
}

 

6、运行项目成功,查看log

log 目录在bin 目录下 

asp.net core NLog将日志写到文件_json_03

asp.net core NLog将日志写到文件_配置文件_04

 

7、NLog GitHub 项目

 https://github.com/linezero/Blog/tree/master/NETCoreLogging

 



标签:core,asp,app,dBContext,NLog,nlog,logger,config,public
From: https://blog.51cto.com/u_4018548/6417930

相关文章

  • Asp.NetCore Web应用程序中的请求管道和中间件
     你是否会迷惑当我们请求一个ASP.NetWeb应用程序以后,它是怎么处理这些请求的,后台是怎么工作的,今天就讲一下Asp.NetCoreWeb应用程序中的请求处理过程。    上一节,我们讲到,Startup文件中用来配置中间件(middleware),这个中间件就是用来处理请求的。那标题中的请求管道又是什么呢,......
  • asp.net core的输入模型验证
    数据验证特性RequiredAttribute:表示数据不能为空RegularExpressionAttribute:正则校验CompareAttribute:和某个属性比较RangeAttribute:表示在某个区间之内MaxAttribute:最大值MinAttribute:最小值StringLengthAttribute:验证字符串长度DataTypeAttribute:验证数据类型在Models页面下面新......
  • asp.net core 过滤器
         ......
  • 第四十八节:Core7.0中速率中间件详解
    一.        二.        三.         !作       者:Yaopengfei(姚鹏飞)博客地址:http://www.cnblogs.com/yaopengfei/声     明1:如有错误,欢迎讨论,请勿谩骂^_^。声     明2:原创博客请在转载......
  • asp.net core从数据库生成实体类,修改实体类
    前言花了我2个小时,终于知道怎么更新.netcore里面的模型层了。。。虽然方法很不正规提示:以下是本篇文章正文内容,下面案例可供参考一、asp.netcore生成从数据库生成实体类1、新建.netcore类库项目我是用的vs2019,其他版本类似2、安装NuGet程序包,三个如下图所示打开NuGet程序包选......
  • ORM核心功能之导航属性- EFCore和 SqlSugar
    导航属性导航属性是作为ORM核心功能中的核心,在SqlSugar没有支持导航属性前,都说只是一个高级DbHelper,经过3年的SqlSugar重构已经拥有了一套非常成熟的导航属性体系,本文不是重点讲SqlSugar而是重点讲导航属性的作用,让更多写Sql人还未使用ORM的人了解到ORM的作用。 1.复杂的查......
  • Net Core-MediatR
    一GitHub地址:https://github.com/jbogard/MediatR二简单使用:publicclassMyRequestMsg:IRequest<int>{publicstringRequestMsgType{get;set;}=string.Empty;}publicclassMyRequestHandler:IRequestHandler<MyRequestMsg,int>{public......
  • iOS MachineLearning 系列(20)—— 训练生成CoreML模型
    iOSMachineLearning系列(20)——训练生成CoreML模型本系列前面的文章详细的介绍了在iOS中与AI能力相关的API的使用,也介绍了如何使用训练好的CoreML模型来实现更强大的AI能力。然而,无论是成熟的API提供的能力,还是各种各样的三方模型,有时候都并不能满足某一领域内的定制化需求。当我......
  • Nlog基本使用
    引入get包:NLog.Extensions.Logging添加一个nlog.cofig文件并设置属性,始终复制或较新则复制 <?xmlversion="1.0"encoding="utf-8"?><nlogxmlns="http://www.nlog-project.org/schemas/NLog.xsd"xmlns:xsi="http://www.w3.org/2001/XML......
  • .Net Core后端架构实战【3-介入IOC控制反转】
    摘要:基于.NETCore7.0WebApi后端架构实战【2-介入IOC控制反转】  2023/04/09,ASP.NETCore7.0,VS2022引言InversionofControl,简称IOC,即控制反转。记得当初刚实习的时候公司的带我的人和我提到过IOC这个概念,当初完全不知道是啥东西。后来有幸写了半年Java,Spring......