ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

NLog在asp.net core中的应用

2019-07-18 14:43:32  阅读:221  来源: 互联网

标签:core asp NLog nlog net config 日志 Logger


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<IHttpContextAccessor, HttpContextAccessor>();

……
}
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下,

<?xml version="1.0" encoding="utf-8" ?>

Layout中$后的数据就是要写日志的内容,关于这些数据可参考https://github.com/nlog/nlog/wiki/Layout-Renderers,可以根据自己的需要,选择要保存的日志数据,如下图是web中的日志数据:

wKiom1iTJnagAKoAAAC_kDHd2Dw729.png-wh_50

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

<?xml version="1.0" encoding="utf-8" ?>

INSERT INTO [dbo].[NLog] ( [MachineName], [SiteName], [Logged], [Level], [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 ); 东莞网站建设www.zg886.cn

标签:core,asp,NLog,nlog,net,config,日志,Logger
来源: https://blog.csdn.net/weixin_45032957/article/details/96429967

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有