Asp.net core中,自带的Log是在当selfhost运行时,在控制台中输出,不便于查阅,如果用一个log架框,把日志持久化,便于查询.

  NLog是一个免费的日志记录框架,专门为.net平台下的框架提供日志功能,本文主要说明asp.net core下怎么使用NLog。

  首先用Nuget安装NLog.Extensions.Logging和NLog.Web.AspNetCore两个类库。

  修改project.json,在publishOptions中添加”nlog.config节点”

  "publishOptions": {

  "include": [

  "wwwroot",

  "**/*.cshtml",

  "appsettings.json",

  "web.config",

  "nlog.config"

  ]

  }

  在StartUp.cs中添加

  public void ConfigureServices(IServiceCollection services)

  {

  // Add framework services.

  services.AddMvc();

  //为NLog.web注入HttpContextAccessor

  services.AddSingleton();

  ……

  }

  public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)

  {

  //添加NLog到.net core框架中

  loggerFactory.AddNLog();

  //添加NLog的中间件

  app.AddNLogWeb();

  //指定NLog的配置文件

  env.ConfigureNLog("nlog.config");

  ……

  }

  HomeController.cs中是自定义日志

  static Logger Logger = LogManager.GetCurrentClassLogger();

  public IActionResult Index()

  {

  Logger.Info("普通信息日志");

  Logger.Debug("调试日志");

  Logger.Error("错误日志");

  Logger.Fatal("异常日志");

  Logger.Warn("警告日志");

  Logger.Trace("跟踪日志");

  Logger.Log(NLog.LogLevel.Warn, "Log日志");

  try

  {

  int i = 0;

  var a = 10 / i;

  }

  catch (Exception exc)

  {

  //异常日志

  Logger.Fatal(exc, exc.Message);

  }

  return View();

  }

  NLog.config,有两种日志,记录在C:\temp下,一种是全部日志,一种是自己通过NLog函数记录的日志。如果日志库异常,会产生在c:\temp\internal-nlog.txt下,

  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

  autoReload="true"

  internalLogLevel="Warn"

  internalLogFile="c:\temp\internal-nlog.txt">

  layout="${longdate}|${event-properties:item=EventId.Id}|${logger}|${uppercase:${level}}|${message} ${exception}" />

  layout="${longdate}|${event-properties:item=EventId.Id}|${logger}|${uppercase:${level}}| ${message} ${exception}|url: ${aspnet-request-url}|action: ${aspnet-mvc-action}" />

  Layout中$后的数据就是要写日志的内容,可以根据自己的需要,选择要保存的日志数据.

  如果想把日志保存到数据库中,可以把NLog.config修改如下:

  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

  autoReload="true"

  internalLogLevel="Warn"

  internalLogFile="c:\temp\internal-nlog.txt">

  INSERT INTO [dbo].[NLog] (

  [MachineName],

  [SiteName],

  [Logged],

  [Level],无锡好的男科医院 http://www.zzchnk.com/

  [UserName],

  [Message],

  [Logger],

  [Properties],

  [Host],

  [Controller],

  [Action],

  [Url],

  [CallSite],

  [Exception]

  ) VALUES (

  @machineName,

  @siteName,

  @logged,

  @level,

  @userName,

  @message,

  @logger,

  @properties,

  @host,

  @controller,

  @action,

  @url,

  @callSite,

  @exception

  );

NLog在asp.net core中的应用的更多相关文章

  1. Asp.Net Core中使用NLog记录日志

    2019/10/28, Asp.Net Core 3.0, NLog 4.6.7, NLog.Web.AspNetCore 4.9.0 摘要:NLog在asp.net网站中的使用,NLog日志写入数据 ...

  2. ASP.NET Core:ASP.NET Core中使用NLog记录日志

    一.前言 在所有的应用程序中,日志功能是不可或缺的模块,我们可以根据日志信息进行调试.查看产生的错误信息,在ASP.NET Core中我们可以使用log4net或者NLog日志组件来实现记录日志的功能 ...

  3. 使用 NLog 给 Asp.Net Core 做请求监控

    为了减少由于单个请求挂掉而拖垮整站的情况发生,给所有请求做统计是一个不错的解决方法,通过观察哪些请求的耗时比较长,我们就可以找到对应的接口.代码.数据表,做有针对性的优化可以提高效率.在 asp.ne ...

  4. 玩转ASP.NET Core中的日志组件

    简介 日志组件,作为程序员使用频率最高的组件,给程序员开发调试程序提供了必要的信息.ASP.NET Core中内置了一个通用日志接口ILogger,并实现了多种内置的日志提供器,例如 Console ...

  5. Asp.Net Core中利用Seq组件展示结构化日志功能

    在一次.Net Core小项目的开发中,掌握的不够深入,对日志记录并没有好好利用,以至于一出现异常问题,都得跑动服务器上查看,那时一度怀疑自己肯定没学好,不然这一块日志不可能需要自己扒服务器日志来查看 ...

  6. ASP.NET Core中,UseDeveloperExceptionPage扩展方法会吃掉异常

    在ASP.NET Core中Startup类的Configure方法中,有一个扩展方法叫UseDeveloperExceptionPage,如下所示: // This method gets call ...

  7. ASP.NET Core 中的日志记录

    目录 内置日志的使用 使用Nlog 集成ELK 参考 内置日志的使用 Logger 是 asp .net core 的内置 service,所以我们就不需要在ConfigureService里面注册了 ...

  8. (14)ASP.NET Core 中的日志记录

    1.前言 ASP.NET Core支持适用于各种内置和第三方日志记录提供应用程序的日志记录API.本文介绍了如何将日志记录API与内置提供应用程序一起使用. 2.添加日志提供程序 日志记录提供应用程序 ...

  9. ASP.NET Core 中的那些认证中间件及一些重要知识点

    前言 在读这篇文章之间,建议先看一下我的 ASP.NET Core 之 Identity 入门系列(一,二,三)奠定一下基础. 有关于 Authentication 的知识太广,所以本篇介绍几个在 A ...

随机推荐

  1. TensorFlow图像预处理完整样例

    参考书 <TensorFlow:实战Google深度学习框架>(第2版) 以下TensorFlow程序完成了从图像片段截取,到图像大小调整再到图像翻转及色彩调整的整个图像预处理过程. #! ...

  2. UITableViewCell添加点击时改变字体的颜色、背景、图标

    改变字体颜色:cell.textLabel.highlightedTextColor 改变背景颜色:cell.selectedBackgroundView (必须是图片哦) 改变图标颜色:cell.i ...

  3. ssm框架下实现文件上传

      1.由于ssm框架是使用Maven进行管理的,文件上传所需要的jar包利用pom.xml进行添加,如下所示: <properties> <commons-fileupload.v ...

  4. Coloring Trees CodeForces - 711C

    Coloring Trees CodeForces - 711C 题意:有n个点,每个点有一个c值,如果为0表示它没有被染色,否则表示它被染成了c值的颜色.颜色有1到m.把第i棵树染成颜色j所需要的代 ...

  5. C. Molly's Chemicals 暴力 + 统计技巧

    http://codeforces.com/contest/776/problem/C 一开始做的时候,就发现是预处理前缀和,然后对于每一个前缀和,如果他能成为一个贡献,就是能和前面的某些段 组合成和 ...

  6. XSS漏洞解析(二)

    上篇我们讲了XSS的一些相关的内容,这篇我们就直接上代码demo解决实际问题吧. 主要的问题是xssfilter的编写,我们直接去网上找一下框架,一般有js,php,java等语言都有相关的XSS的相 ...

  7. filter和map的使用

    if ( this.dataAggridvue.filter( item => item.Accepted == true && item.InvoiceGroupCode != ...

  8. Android 基础知识总结

    搞了这么久安卓开发,对基础的知识点总会遗忘,所有有必要总结一下:

  9. objectbox基础

    objectbox基础 参考链接 官网地址 http://objectbox.io github地址 https://github.com/objectbox/objectbox-java https ...

  10. HTTPS时代已来,你做好准备了吗?

    早在今年年初,Google在其安全博客上已经表明,从7月开始,Chrome68会将所有的HTTP网站标记为不安全.随后,Mozilla也表明,Firefox浏览器也准备将所有HTTP网站标记为不安全. ...