c#的日志插件NLog基本使用
本文介绍c#的日志插件NLog
安装插件
创建logger
日志级别
书写日志信息
配置
包装器
布局
-
直接下载插件包 Install-Package NLog.Config
-
使用LogManager创建Logger实例,最好一个类里面一个Logger实例
写法一
这种写法,记录的日志文件,显示的logger名字,是命名空间加上logger所在类的类名,如 ConsoleApp1.Program
private static Logger mylogger = LogManager.GetCurrentClassLogger();
写法二
这种写法,可以手动设置日志文件中的logger名字
Logger mylogger = LogManager.GetLogger("myTest");
-
级别由低到高
Trace 记录完整的信息,一般只用在开发环境
Debug 记录调试信息,没有Trace信息完整,一般也只用在开发环境
Info 简单的信息,一般用在生产环境
Warn 记录警告信息,一些可以解决的小问题
Error 记录报错信息,一般都是Exceptions信息
Fatal 非常严重的错误信息
-
logger.Trace("Sample trace message");
logger.Debug("Sample debug message");
logger.Info("Sample informational message");
logger.Warn("Sample warning message");
logger.Error("Sample error message");
logger.Fatal("Sample fatal error message");
或者使用
logger.Log(LogLevel.Info, "Sample informational message");
支持格式化 mylogger.Fatal("Sample {0} error message", "fetal");
尽量使用NLog内置的格式化工具,NLog做了优化工作
-
最基础的配置
第一步,打开NLog.config配置文件,添加如下配置
<targets>
<target name="logfile" xsi:type="File" fileName="file.txt" /> // 创建一个target,代表输出日志文件的配置
</targets>
<rules>
<logger name="*" minlevel="Info" writeTo="logfile" /> // 设置Info级别以上的日志,才能够输入到什么名为logfile的target当中
/*
1.这里logger自己还有一个name,这个name对应类名,也就是说什么样的类名可以输出日志,如ConsoleApp1.Program
2.可以添加final="true"属性,表示后面的所有针对此指定名字的logger都无效
*/
</rules>
第二步,运行代码即可
多target配置
<targets>
<target name="logfile" xsi:type="File" fileName="file.txt" />
<target name="console" xsi:type="Console" /> // 创建一个target表示用控制台输出日志信息
</targets>
<rules>
<logger name="*" minlevel="Trace" writeTo="logfile" />
<logger name="*" minlevel="Info" writeTo="console" /> // 将Info级别以上的配置信息输出到名为console的target中
</rules>
-
异步包装器配置
<targets>
<target name="asyncFile" xsi:type="AsyncWrapper">
<target name="logfile" xsi:type="File" fileName="file.txt"/>
</target>
</targets>
<rules>
<logger name="*" minlevel="Trace" writeTo="asyncFile"/>
</rules>
还有很多包装器,按需自查
-
布局是用来格式化日志输出信息的
simple日志格式化
<target name="logfile" xsi:type="File" fileName="file.txt" layout="${date:format=yyyyMMddHHmmss} ${message} ${counter:increment=3:sequence=Layout:value=5}"/>
还有很多格式化写法,自行查阅
-
public class Demo1
{
protected Logger Log { get; set; }
protected Demo1()
{
Log = LogManager.GetLogger(GetType().FullName);
}
}
public class Demo2: Demo1
{
public Demo2():base() { }
}
c#的日志插件NLog基本使用的更多相关文章
- ASP.NET Core 入门教程 10、ASP.NET Core 日志记录(NLog)入门
一.前言 1.本教程主要内容 ASP.NET Core + 内置日志组件记录控制台日志 ASP.NET Core + NLog 按天记录本地日志 ASP.NET Core + NLog 将日志按自定义 ...
- 一个简单好用的日志框架NLog
之前我介绍过如何使用log4net来记录日志,但最近喜欢上了另一个简单好用的日志框架NLog. 关于NLog和log4net的比较这里就不多讨论了,感兴趣的朋友可以参看.NET日志工具介绍和log4n ...
- .NET技术-3.0. 日志插件 log4net
.NET技术-3.0. 日志插件 log4net 背景:框架 NetFramework3.5 1. 新建控制台程序 2. 程序包管理器控制台中 增加 Nuget包 Install-Package lo ...
- 日志插件 log4net 的使用
文本格式说明 可以记载的日志类别包括:FATAL(致命错误).ERROR(一般错误).WARN(警告).INFO(一般信息).DEBUG(调试信息). 文本参数说明 %m(message):输出的日志 ...
- 高性能PHP日志插件--Seaslog
日志系统作为记录系统运行的信息,包括 用户输入,安全日志等,日志系统是不能影响用户的使用. 为什么需要记录日志? 既然日志系统增加了整个系统的开销,为什么我还需要它,这是因为日志能帮我们记录运行的很多 ...
- 日志管理-NLog日志框架简写用法
本文转载:http://www.blogjava.net/qiyadeng/archive/2013/02/27/395799.html 在.net中也有非常多的日志工具,今天介绍下NLog.NLog ...
- 日志插件 log4net 的配置和使用
文本格式说明 可以记载的日志类别包括:FATAL(致命错误).ERROR(一般错误).WARN(警告).INFO(一般信息).DEBUG(调试信息). 文本参数说明 %m(message):输出的日志 ...
- 日志框架 NLog
这里按老规矩先进行和其它产品进行比较: 目前在.net平台存在两个比较老牌的日志框架分别为Log4net和NLog. 我们进行对这两种框架进行比较下 Log4net Log4net是一个老牌的日志框架 ...
- 【Azure 云服务】Azure Cloud Service (Extended Support) 云服务开启诊断日志插件 WAD Extension (Windows Azure Diagnostic) 无法正常工作的原因
问题描述 在Azure中国区上面创建一个云服务(外延支持)后,根据官方文档(在云服务(外延支持)中应用 Azure 诊断扩展: https://docs.azure.cn/zh-cn/cloud-se ...
随机推荐
- MAC 系列 之XCode7.1 + HBuilder MUI 离线打包 ipa 上次application leader 问题:ERROR ITMS - 90534
解决方法:这个原因 网上说法是 beta 测试版本:不过的确是beta版本(7.3 beta)打包的,所以我有下载了一个正式版本 7.1版本. 再次进行测试打包!
- 1.java实现——正规表达式判断
目标:这个代码仅局限于所展示的正规表达式判断,也就是这是一个较单一的正规表达式判断(简易版). 既然是简易版的,所以若要修改这个正规表达式也是非常容易的,只要将二维数组中的数组修改即可.数组数据依据, ...
- StringToInt(atoi) 字符串转换成整数
public class StringToInt { public int atoi(String s) { long num = 0; int minus = 0; if(s==null) { re ...
- java collection接口源码
package java.util; 02. 03./* 04.* 1.Collection接口是集合继承关系中的根接口(root interface),有些集合允许重复元素, 05.* 有些集合有序 ...
- Windows 安装Mysql8.0 绿色包
〇.准备: MySQL8.0 Windows zip包下载地址:https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.11-winx64.zip 环 ...
- mysql 自增长 AUTO_INCREMENT
Mysql可以使用AUTO_INCREMENT来设定主键的值为自增长的,其默认值是1. 如果想把它的初始值设置为n,可执行:alter table table_name auto_increment= ...
- tableau join 与格式问题
一开始我没有找到它的join 方法.其实应该是编辑相应的join关系.选择数据源,选择字段.数据源是可以选择的. 剩下的计算问题,要再弄下.不好说,这个其实烦了我很久了. 高级选项,扩展最大行数.即可 ...
- hdu-3790-最短路径问题(Dijkstra)
题目链接 /* Name:hdu-3790-最短路径问题 Copyright: Author: Date: 2018/4/16 19:16:25 Description: dijkstra 模板题 * ...
- Scala极速入门
摘要 当面向对象遇到函数式编程,这就是Scala.简练的语言描述与简单的例子相辅相成,希望能够对大家学习Scala有所帮助. scala 入门 定义 Scala语言是一种面向对象语言,同时又结合了命令 ...
- Express+Mongoose(MongoDB)+Vue2全栈微信商城项目全记录(一)
最近用vue2做了一个微信商城项目,因为做的比较仓促,所以一边写一下整个流程,一边稍做优化. 项目github地址:https://github.com/seven9115/vue-fullstack ...