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. java并发编程(二十五)----(JUC集合)LinkedBlockingDeque和ConcurrentLinkedDeque介绍

    Queue除了前面介绍的实现外,还有一种双向的Queue实现Deque.这种队列允许在队列头和尾部进行入队出队操作,因此在功能上比Queue显然要更复杂. LinkedBlockingDeque 我们 ...

  2. RocketMQ中PullConsumer的启动源码分析

    通过DefaultMQPullConsumer作为默认实现,这里的启动过程和Producer很相似,但相比复杂一些 [RocketMQ中Producer的启动源码分析] DefaultMQPullCo ...

  3. 记一次JPA遇到的奇葩错误——本地sql不识别表名的别名

    记一次JPA遇到的奇葩错误——本地sql不识别表名的别名 报错:Unknown column 'our' in 'field list' 起因:需要本地sql查询后,分页返回自定义对象.报错信息如下: ...

  4. 洛谷 P2157 [SDOI2009]学校食堂

    题意简述 每个人有一个口味,食堂每次只能为一个人做菜 做每道菜所需的时间是和前一道菜有关的,若前一道菜的对应的口味是a,这一道为b,则做这道菜所需的时间为a 异或 b 每个人都有一个容忍度,最多允许紧 ...

  5. Javascript中,实现类与继承的方法和优缺点分析

    Javascript是一种弱类型语言,不存在类的概念,但在js中可以模仿类似于JAVA中的类,实现类与继承 第一种方法:利用Javascript中的原型链 //首先定义一个父类 function An ...

  6. ThinkPHP 跟踪日志设置、默认分组设置

    跟踪日志: 做配置 ‘SHOW_PAGE_TRACE’ => true 默认分组: 做配置 ‘MODULE_ALLOW_LIST’ => array(‘Home’,’Admin’)

  7. java学习二

    一.类 1.类是模子,确定对象将会拥有的特征(属性)和行为(方法) 2.类的特点: (1).类是对象的类型 (2).具有相同属性和方法的一组对象的集合 3.类是抽象的概念,仅仅是模板,比如说:“手机” ...

  8. zookeeper和dubbo安装与搭建

    Zookeeper+Dubbo安装与搭建 (原创:黑小子-余) 本文有借鉴:https://www.cnblogs.com/UncleYong/p/10737119.html (一)zookeeper ...

  9. tracert和traceroute介绍

    一.tracert和traceroute简介 相同点:都是用来跟踪路由,帮助排查问题,关注的是过程,而ping关注的是结果 不同点:tracert请求是icmp echo报文 traceroute请求 ...

  10. js 设计模式——状态模式

    状态模式 允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了它的类. 简单的解释一下: 第一部分的意思是将状态封装成独立的类,并将请求委托给当前的状态对象,当对象的内部状态改变时,会带来 ...