• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >ASP.NET > ASP.NET Core开发教程之Logging利用NLog写日志文件

ASP.NET Core开发教程之Logging利用NLog写日志文件

作者:LineZero 字体:[增加 减小] 来源:互联网 时间:2018-08-20

LineZero 通过本文主要向大家介绍了asp.net,core,logging,asp.net,core,nlog,asp.net,core,日志等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

前言

本文主要介绍了ASP.NET Core 开发-Logging 使用NLog 写日志文件的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧

NLog 可以适用于 .NET Core 和 ASP.NET Core 。

ASP.NET Core已经内置了日志支持,可以轻松输出到控制台。

学习Logging 组件的相关使用,使用NLog 将日志写入到文件记录。

Logging 使用

新建一个 ASP.NET Core 项目,为了方便,我选择Web 应用程序,改身份验证 改为 不进行身份验证。

新建好以后,会自动引用好对应的 类库。这样我们就可以直接使用 Logger。

Logger 在 Controller的使用

public class HomeController : Controller
 {
  private readonly ILogger<HomeController> _logger;

  public HomeController(ILogger<HomeController> logger)
  {
   _logger = logger;
  }
  public IActionResult Index()
  {
   _logger.LogInformation("你访问了首页");
   _logger.LogWarning("警告信息");
   _logger.LogError("错误信息");
   return View();
  }

  public IActionResult About()
  {
   ViewData["Message"] = "Your application description page.";

   return View();
  }

  public IActionResult Contact()
  {
   ViewData["Message"] = "Your contact page.";

   return View();
  }

  public IActionResult Error()
  {
   return View();
  }
 }

使用DI 直接可以使用对象。

你会发现日志信息输出来的是乱码,这里我们要指定输出格式。

需要添加 System.Text.Encoding.CodePages 引用

Install-Package System.Text.Encoding.CodePages -Pre

然后在 Startup.cs —> Configure

  public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
  {
   Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);

这样在控制台显示就不会出现乱码。

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

级别包含范围由大到小 ,如 Trace 就包含了所有信息。

NLog 使用

NLog 在 ASP.NET Core中的使用。

1.添加引用。

Install-Package NLog.Extensions.Logging -Pre

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">

 <!-- define various log targets -->
 <targets>
 <!-- write logs to file -->
 <target xsi:type="File" name="allfile" fileName="nlog-all-${shortdate}.log"
     layout="${longdate}|${logger}|${uppercase:${level}}|${message} ${exception}" />


 <target xsi:type="File" name="ownFile-web" fileName="nlog-own-${shortdate}.log"
    layout="${longdate}|${logger}|${uppercase:${level}}| ${message} ${exception}" />

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

 <rules>
 <!--All logs, including from Microsoft-->
 <logger name="*" minlevel="Trace" writeTo="allfile" />

 <!--Skip Microsoft logs and so log only own logs-->
 <logger name="Microsoft.*" minlevel="Trace" writeTo="blackhole" final="true" />
 <logger name="*" minlevel="Trace" writeTo="ownFile-web" />
 </rules>
</nlog>

3.在 Startup.cs -》 Configure

  public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
  {
   loggerFactory.AddNLog();//添加NLog

运行程序,你就会发现,项目下多了两个文件,证明成功执行。

这里 nlog-all-*.log 是记录所有日志,nlog-own-*.log 记录跳过Microsoft 开头的类库输出的相关信息,剩下的信息。

4.发布(dotnet publish)注意事项

在 project.json 的  publishOptions节点 加入 nlog.config

"publishOptions": {
 "include": [
  "wwwroot",
  "Views",
  "appsettings.json",
  "web.config",
  "nlog.config"//加上nlog配置文件
 ]
 },

GitHub :https://github.com/linezero/Blog/tree/master/NETCoreLogging

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对的支持。

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Asp.net SignalR 应用并实现群聊功能 开源代码
  • asp.net动态更新
  • asp.net利用母版制作页脚效果
  • Asp.Net服务器发送HTTP标头后无法设置内容类型的问题解决
  • 使用asp.net mvc,boostrap及knockout.js开发微信自定义菜单编辑工具(推荐)
  • 详解ASP.NET MVC 常用扩展点:过滤器、模型绑定
  • ASP.NET Core发送邮件的方法
  • 在ASP.NET Core 中发送邮件的实现方法(必看篇)
  • ASP.NET MVC从视图传参到控制器的几种形式
  • Asp.net core WebApi 使用Swagger生成帮助页实例

相关文章

  • 2017-05-11一个伴随ASP.NET从1.0到4.0的OutputCache Bug介绍
  • 2017-05-11asp.net连接数据库读取数据示例分享
  • 2017-05-11.net 中按.(点)无法智能提示的bug解决方案
  • 2018-08-20.NET Core 2.1中HttpClientFactory的最佳实践记录
  • 2017-05-11Visual Studio 2017下ASP.NET CORE的TagHelper智能提示解决办法
  • 2017-05-11ASP.NET缓存管理的几种方法
  • 2017-05-11在Web用户控件中引用样式表中样式的方法
  • 2017-05-11ASP.NET MVC3 实现全站重定向的简单方法
  • 2017-05-11判断WebBrowser浏览器网页加载完成的处理方法
  • 2017-05-11asp.net(C#)解析Json的类代码

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • C# CUR类实现代码
    • ASP.NET MVC文件上传教程(二)
    • ASP.NET Cache的一些总结分享
    • NopCommerce架构分析之(四)基于路由实现灵活的插件机制
    • WPF实现slide控件拖动完成后改变变量值
    • 在 .NET Framework 2.0 中未处理的异常导致基于 ASP.NET 的应用程序意外退出
    • c# 读取Northwind数据库image字段
    • .NET中弹出对话框的方法汇总
    • Asp.net,C# 加密解密字符串的使用详解
    • ConfiguraionSource节点及多个配置文件的应用

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有