NLog在asp.net core中的应用
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中的应用的更多相关文章
- 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日志写入数据 ...
- ASP.NET Core:ASP.NET Core中使用NLog记录日志
一.前言 在所有的应用程序中,日志功能是不可或缺的模块,我们可以根据日志信息进行调试.查看产生的错误信息,在ASP.NET Core中我们可以使用log4net或者NLog日志组件来实现记录日志的功能 ...
- 使用 NLog 给 Asp.Net Core 做请求监控
为了减少由于单个请求挂掉而拖垮整站的情况发生,给所有请求做统计是一个不错的解决方法,通过观察哪些请求的耗时比较长,我们就可以找到对应的接口.代码.数据表,做有针对性的优化可以提高效率.在 asp.ne ...
- 玩转ASP.NET Core中的日志组件
简介 日志组件,作为程序员使用频率最高的组件,给程序员开发调试程序提供了必要的信息.ASP.NET Core中内置了一个通用日志接口ILogger,并实现了多种内置的日志提供器,例如 Console ...
- Asp.Net Core中利用Seq组件展示结构化日志功能
在一次.Net Core小项目的开发中,掌握的不够深入,对日志记录并没有好好利用,以至于一出现异常问题,都得跑动服务器上查看,那时一度怀疑自己肯定没学好,不然这一块日志不可能需要自己扒服务器日志来查看 ...
- ASP.NET Core中,UseDeveloperExceptionPage扩展方法会吃掉异常
在ASP.NET Core中Startup类的Configure方法中,有一个扩展方法叫UseDeveloperExceptionPage,如下所示: // This method gets call ...
- ASP.NET Core 中的日志记录
目录 内置日志的使用 使用Nlog 集成ELK 参考 内置日志的使用 Logger 是 asp .net core 的内置 service,所以我们就不需要在ConfigureService里面注册了 ...
- (14)ASP.NET Core 中的日志记录
1.前言 ASP.NET Core支持适用于各种内置和第三方日志记录提供应用程序的日志记录API.本文介绍了如何将日志记录API与内置提供应用程序一起使用. 2.添加日志提供程序 日志记录提供应用程序 ...
- ASP.NET Core 中的那些认证中间件及一些重要知识点
前言 在读这篇文章之间,建议先看一下我的 ASP.NET Core 之 Identity 入门系列(一,二,三)奠定一下基础. 有关于 Authentication 的知识太广,所以本篇介绍几个在 A ...
随机推荐
- pycharm 激活码激活
http://idea.lanyus.com/ 去这个网站获取激活码,输入即可,亲测可用
- 两边是线 ,中间是文字 的CSS写法 而且还是自适应的
- Jquery实现相对浏览器位置固定、悬浮
<script src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></sc ...
- HAL之PWM
PWM是定时器的一个输出功能,要分配在有对应输出的管脚上.分频和定时值决定了周期,捕获寄存器的值就是占空比,当计数寄存器的值小于捕获值时输出固定电平(H),当大于时翻转电平,当计数器值溢出时将重载值载 ...
- 使用 Realm 和 Swift 创建 ToDo 应用
原文出处: HOSSAM GHAREEB 译文出处:Prayer’s blog(@EclipsePrayer) 智能手机的快速发展的同时,涌现出了很多对开发者友好的开发工具,这些工具不仅使得开发变 ...
- collection接口的实现:set,list,queue
在java.util包中提供了一些集合类,常用的有List.Set和Map类,其中List类和Set类继承了Collection接口.这些集合类又称为容器,长度是可变的,数组用来存放基本数据类型的数据 ...
- poj2282The Counting Problem(组合)
链接 计算0-9每一个数字出现的次数 逐位进行处理 对于每一位取几时依次算下组合的情况 注意0的情况需要特殊处理一下 因为0000 00 这样都是等于0的 前面的几位是多余的 #include < ...
- webfrom ASP开发基础跟模式
ASP.NET - .net开发网站应用程序的技术总称 ASP WebForm MVC 是ASP.NET的两个技术方法 WebForm类似于WinForm,可视化操作 MVC类 ...
- re正则表达式公式讲解6
标识符 re.I (re.IGNORECASE) 忽略大小写 import re s = "Max@123uyt146" print(re.search("m" ...
- 【学习笔记】block、inline(替换元素、不可替换元素)、inline-block的理解
本文转载 总体概念 block和inline这两个概念是简略的说法,完整确切的说应该是 block-level elements (块级元素) 和 inline elements (内联元素).blo ...