NLog是一个配置灵活的日志记录类库,拥有输出日志到文件、存储入库、发送到udp地址的高级功能

1 添加 nlog nuget包

Nlog和NLog.Web.AspNetCore

安装完成后

 

2 在站点根目录下添加配置文件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">

<targets>

<target xsi:type="File" name="file" fileName="nlog-all-${shortdate}.log"

layout="${longdate}|${logger}|${uppercase:${level}}|${message} ${exception}" />

<target xsi:type="File" name="exception" fileName="nlog-exception-${shortdate}.log"

layout="${longdate}|${logger}|${uppercase:${level}}|${message} ${exception}" />

<target xsi:type="File" name="trace" fileName="nlog-trace-${shortdate}.log"

layout="${longdate}|${logger}|${uppercase:${level}}|${message} ${exception}" />

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

</targets>

<rules>

<logger name="*" minlevel="Trace" writeTo="file" />

<!--日志级别:Trace -》Debug-》 Information -》Warning-》 Error-》 Critical-->

<!--排除系统日志-->

<logger name="Microsoft.*" minlevel="Trace" writeTo="blackhole" final="true" />

<logger name="*" minlevel="Trace" writeTo="trace" />

<logger name="*" minlevel="Error" maxlevel="Error" writeTo="exception" />

</rules>

</nlog>

设置配置文件属性:始终复制

3修改Startup.cs文件

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

{

if (env.IsDevelopment())

{

app.UseDeveloperExceptionPage();

}

else

{

app.UseExceptionHandler("/Home/Error");

app.UseHsts();

}

//添加nlog支持

loggerFactory.AddNLog();

app.UseHttpsRedirection();

app.UseStaticFiles();

app.UseCookiePolicy();

app.UseMvc(routes =>

{

routes.MapRoute(

name: "default",

template: "{controller=Home}/{action=Index}/{id?}");

});

}

4在控制器代码中使用 Microsoft.Extensions.Logging;输出日志

public class HomeController : Controller

{

//定义logger接口

private static ILogger<HomeController> _logger;

public HomeController(ILogger<HomeController> logger)

{

_logger = logger;

}

public IActionResult Index()

{

_logger.LogInformation("info test");

_logger.LogTrace("trace test");

_logger.LogError("error test");

return View();

}

}

5 使用nlog自己的logger输出日志, 这样就不用使用依赖注入了,在一些特定的环境下一样可以使用

public class NLogController : Controller

{

//定义logger接口

private static NLog.Logger _logger;

public NLogController()

{

_logger = NLog.LogManager.GetCurrentClassLogger();

}

public IActionResult Index()

{

_logger.Error("nlog test");

return Content("nlog");

}

}

6在站点根目录下查看日志文件

aspnetcore_nlog\aspnetcore_nlog\bin\Debug\netcoreapp2.1

 

asp.net core 使用 NLog日志的更多相关文章

  1. ASP.NET Core 添加NLog日志支持(VS2015update3&VS2017)

    1.创建一个新的ASP.NET Core项目 2.添加项目依赖 NLog.Web.AspNetCore 3.在项目目录下添加nlog.config文件: <?xml version=" ...

  2. asp.net core结合NLog搭建ELK实时日志分析平台

    0.整体架构 整体架构目录:ASP.NET Core分布式项目实战-目录 一.介绍ELK 1.说明(此篇ELK采用rpm的方式安装在服务器上)-牛刀小试 承接上一篇文章的内容准备部署ELK来展示asp ...

  3. 第七节:Asp.Net Core内置日志和整合NLog(未完)

    一. Asp.Net Core内置日志 1. 默认支持三种输出方式:控制台.调试(底部输出窗口).EventSource,当然也可以在Program类中通过logging.ClearProviders ...

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

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

  5. asp.net core 系列 13 日志

    一.概述 ASP.NET Core 支持适用于各种内置和第三方日志记录, 供程序的日志记录 API,本文介绍了如何将日志记录 API 与内置提供程序一起使用.对于第三方日志记录提供程序使用,文章最后有 ...

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

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

  7. ASP.NET Core 异常处理与日志记录

    1. ASP.NET Core 异常处理与日志记录 1.1. 异常处理 1.1.1. 异常产生的原因及处理 1.1.2. ASP.NET Core中启动开发人员异常页面 1.2. 日志记录 1.2.1 ...

  8. asp.net core 集成 log4net 日志框架

    asp.net core 集成 log4net 日志框架 Intro 在 asp.net core 中有些日志我们可能想输出到数据库或文件或elasticsearch等,如果不自己去实现一个 Logg ...

  9. ASP.NET Core使用NLog记录日志到Microsoft Sql Server

    在之前的文章中介绍了如何在ASP.NET Core使用NLog,本文为您介绍在ASP.NET Core使用NLog记录到Microsoft Sql Server 1.我们需要添加依赖: NLog.We ...

随机推荐

  1. node一键发布,并运行

    作为一个前端开发人员如果你只会写一些业务代码,从程序员的角度来考虑已经可以了.但是从架构的角度来考虑那远远不够: 在此记录下成长中的经历: 想要达成的目的:运行一个脚本实现代码的打包,上传至服务器并部 ...

  2. eclipse项目导入idea jdk版本不一致😵

    在导入eclipse项目到idea过程中遇到 Imported project refers to unkonwn jdks JavaSE-1.8 解决方法: file --> Project ...

  3. JavaScript 数组、字符串、Map、Set 方法整理

    在线阅读 https://www.kancloud.cn/chenmk/web-knowledges/1080519 数组 isArray():Array.isArray(value) 用于检测变量是 ...

  4. cs231n--详解卷积神经网络

    原版地址:http://cs231n.github.io/convolutional-networks/ 知乎翻译地址:https://zhuanlan.zhihu.com/p/22038289?re ...

  5. (二十一)c#Winform自定义控件-气泡提示

    前提 入行已经7,8年了,一直想做一套漂亮点的自定义控件,于是就有了本系列文章. 开源地址:https://gitee.com/kwwwvagaa/net_winform_custom_control ...

  6. ArrayList用法整理

    System.Collections.ArrayList类是一个特殊的数组.通过添加和删除元素,就可以动态改变数组的长度. 一.优点 1.支持自动改变大小的功能 2.可以灵活的插入元素 3.可以灵活的 ...

  7. .Net 连接FTP下载文件报错:System.InvalidOperationException: The requested FTP command is not supported when using HTTP proxy

    系统环境: Windows + .Net Framework 4.0   问题描述: C#连接FTP下载文件时,在部分电脑上有异常报错,在一部分电脑上是正常的:异常报错的信息:System.Inval ...

  8. H5 API编码、解码

    方式一.decodeURI 解码 encodeURI 编码 方式二. var str = 'hello'; //加密 data base 64编码 组成部分 0-9 a-z A-Z +/ = 64位个 ...

  9. swith case判断

    swith case是js中的一种判断方式 应用于变量或表达式在不同值情况下的不同操作,每一种case结束都要加break结束整个判断 var num = 2; switch(num){ case 0 ...

  10. CSU1784

    题意略. 思路:为了更好地求出一段连续数字的异或和,我们可以用前缀异或和来维护,现在我们只需要考虑每一个在数组中的数字向前异或,且在指定范围内, 异或值为全1的个数有多少个.算出每一个位子能做出的贡献 ...