ASP.NET应用程序使用NLog记录日志
2012-08-24 10:12
183 查看
在上一家公司就在使用NLog做日志记录,调用方便又好配置,查看日志非常方便。所以在新公司新项目中就想到了它。背景交代完毕。
先看配置,在ASP.NET应用程序中,NLog会自动扫描以下这几个文件
1)web.config
2)与web.config在同一目录下的web.nlog文件
3)程序目录下的NLog.config文件
4)NLog.dll所在目录下的NLog.dll.nlog文件
我们按第一种文件配置,那么下面就是web.config配置文件中的内容
<configSections>
<!--Nlog-->
<section name="nlog" type="NLog.Config.ConfigSectionHandler, NLog" restartOnExternalChanges="false"/>
</configSections>
<nlog>
<include file="${basedir}/Configuration/NLog.config" />
</nlog>
然后就是NLog.config。这个文件的内容看名字就知道,是NLog的具体行为的配置信息,示例如下
<?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">
<targets>
<target name="exceptionFile" xsi:type="File" fileName="${basedir}/Site_Log/${shortdate}/${logger}_${level}.txt" layout="${longdate}|${level:uppercase=true}|${logger}${newline}${message}${newline}"/>
<target name="console" xsi:type="ColoredConsole" layout="${date:format=HH\:mm\:ss}|${level}|${stacktrace}|${message}"/>
</targets>
<rules>
<logger name="*" minlevel="Debug" writeTo="exceptionFile"/>
<logger name="*" minlevel="Info" writeTo="console"/>
<logger name="*" minlevel="Trace" writeTo="console"/>
<logger name="*" minlevel="Fatal" writeTo="exceptionFile"/>
<logger name="*" minlevel="Error" writeTo="exceptionFile"/>
<logger name="*" minlevel="Warn" writeTo="exceptionFile"/>
</rules>
< /nlog>
下面我们一个一个配置节点来说明
首选说明,NLog的配置文件大小写是敏感的,一定要注意。
< nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
命名空间可以配置,也可以不配置。如果配置了命名空间,那么就可以使用VS的智能感知了
<targets>
<target name="exceptionFile" xsi:type="File" fileName="${basedir}/Site_Log/${shortdate}/${logger}_${level}.txt" layout="${longdate}|${level:uppercase=true}|${logger}${newline}${message}${newline}"/>
<target name="console" xsi:type="ColoredConsole" layout="${date:format=HH\:mm\:ss}|${level}|${stacktrace}|${message}"/>
</targets>
定义每种日志记录方式的输出。示例中定义了两种输出方式,分别是File和Console形式,
name:节点/输出名称
xsi:type:输出类型
fileName:日志的文件名
layout:这是NLog比较出彩的一个特性,布局功能。格式是${}。在括号中可以定义日期、log记录级别、调用程序等上下文信息。既可以规范的命名文件,也可以记录在日志中,方便分析。
<rules>
<logger name="*" minlevel="Debug" writeTo="exceptionFile"/>
<logger name="*" minlevel="Info" writeTo="console"/>
<logger name="*" minlevel="Trace" writeTo="console"/>
<logger name="*" minlevel="Fatal" writeTo="exceptionFile"/>
<logger name="*" minlevel="Error" writeTo="exceptionFile"/>
<logger name="*" minlevel="Warn" writeTo="exceptionFile"/>
</rules>
name:记录日志的名字。可以使用通配符*
minlevel:记录日志的最低级别,如配置为Debug,那么所有高于等于这个级别的日志都会写到日志文件里。当然也可以指定maxlevel或者单一level,如level=“Debug”,那么只记录Debug级别的信息。也可以指定levels,格式为levels=“Debug,Info”。
writeTo:写入的目标日志文件
配置文件就这么多,接下来就应该是程序调用了,声明一个公共变量,如下
public static Logger logger = LogManager.GetCurrentClassLogger();
在该类的方法中使用
logger.Info("我是EddyPeng,感谢阅读!")
好了,NLog的简单应用就到这里,相信如果只是简单的使用,这篇文章应该就已经足够了。如果有更深入的学习需求,可以移步以下两个地址
http://www.cnblogs.com/dflying/category/78087.html
http://nlog-project.org/wiki
先看配置,在ASP.NET应用程序中,NLog会自动扫描以下这几个文件
1)web.config
2)与web.config在同一目录下的web.nlog文件
3)程序目录下的NLog.config文件
4)NLog.dll所在目录下的NLog.dll.nlog文件
我们按第一种文件配置,那么下面就是web.config配置文件中的内容
<configSections>
<!--Nlog-->
<section name="nlog" type="NLog.Config.ConfigSectionHandler, NLog" restartOnExternalChanges="false"/>
</configSections>
<nlog>
<include file="${basedir}/Configuration/NLog.config" />
</nlog>
然后就是NLog.config。这个文件的内容看名字就知道,是NLog的具体行为的配置信息,示例如下
<?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">
<targets>
<target name="exceptionFile" xsi:type="File" fileName="${basedir}/Site_Log/${shortdate}/${logger}_${level}.txt" layout="${longdate}|${level:uppercase=true}|${logger}${newline}${message}${newline}"/>
<target name="console" xsi:type="ColoredConsole" layout="${date:format=HH\:mm\:ss}|${level}|${stacktrace}|${message}"/>
</targets>
<rules>
<logger name="*" minlevel="Debug" writeTo="exceptionFile"/>
<logger name="*" minlevel="Info" writeTo="console"/>
<logger name="*" minlevel="Trace" writeTo="console"/>
<logger name="*" minlevel="Fatal" writeTo="exceptionFile"/>
<logger name="*" minlevel="Error" writeTo="exceptionFile"/>
<logger name="*" minlevel="Warn" writeTo="exceptionFile"/>
</rules>
< /nlog>
下面我们一个一个配置节点来说明
首选说明,NLog的配置文件大小写是敏感的,一定要注意。
< nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
命名空间可以配置,也可以不配置。如果配置了命名空间,那么就可以使用VS的智能感知了
<targets>
<target name="exceptionFile" xsi:type="File" fileName="${basedir}/Site_Log/${shortdate}/${logger}_${level}.txt" layout="${longdate}|${level:uppercase=true}|${logger}${newline}${message}${newline}"/>
<target name="console" xsi:type="ColoredConsole" layout="${date:format=HH\:mm\:ss}|${level}|${stacktrace}|${message}"/>
</targets>
定义每种日志记录方式的输出。示例中定义了两种输出方式,分别是File和Console形式,
name:节点/输出名称
xsi:type:输出类型
fileName:日志的文件名
layout:这是NLog比较出彩的一个特性,布局功能。格式是${}。在括号中可以定义日期、log记录级别、调用程序等上下文信息。既可以规范的命名文件,也可以记录在日志中,方便分析。
<rules>
<logger name="*" minlevel="Debug" writeTo="exceptionFile"/>
<logger name="*" minlevel="Info" writeTo="console"/>
<logger name="*" minlevel="Trace" writeTo="console"/>
<logger name="*" minlevel="Fatal" writeTo="exceptionFile"/>
<logger name="*" minlevel="Error" writeTo="exceptionFile"/>
<logger name="*" minlevel="Warn" writeTo="exceptionFile"/>
</rules>
name:记录日志的名字。可以使用通配符*
minlevel:记录日志的最低级别,如配置为Debug,那么所有高于等于这个级别的日志都会写到日志文件里。当然也可以指定maxlevel或者单一level,如level=“Debug”,那么只记录Debug级别的信息。也可以指定levels,格式为levels=“Debug,Info”。
writeTo:写入的目标日志文件
配置文件就这么多,接下来就应该是程序调用了,声明一个公共变量,如下
public static Logger logger = LogManager.GetCurrentClassLogger();
在该类的方法中使用
logger.Info("我是EddyPeng,感谢阅读!")
好了,NLog的简单应用就到这里,相信如果只是简单的使用,这篇文章应该就已经足够了。如果有更深入的学习需求,可以移步以下两个地址
http://www.cnblogs.com/dflying/category/78087.html
http://nlog-project.org/wiki
相关文章推荐
- 在ASP.NET AJAX中使用应用程序服务和本地化(1):身份认证组件AuthenticationService
- 部署asp.net时产生“分析器错误:在应用程序级别以外使用注册为 allowDefinition='MachineToApplication' 的节是错误的...”
- [渣译文] 使用 MVC 5 的 EF6 Code First 入门 系列:为ASP.NET MVC应用程序读取相关数据
- ASP.NET MVC应用程序使用axd格式文件
- 使用MSBuild自动编译发布你的ASP.NET应用程序
- [渣译文] 使用 MVC 5 的 EF6 Code First 入门 系列:为ASP.NET MVC应用程序处理并发
- 【使用SignalR+Asp.net创建实时聊天应用程序】
- ASP.NET 4 和 VS2010 Web 开发概述 7 - 使用 VS 2010 开发 Web 应用程序
- [转载]ASP.NET Web 服务还是 .NET Remoting:如何选择,使用 Microsoft .NET 建立分布式应用程序
- 使用ASP.NET 构建 Web 应用程序快速入门-8小时的免费培训视频
- 使用Metrics.NET 构建 ASP.NET MVC 应用程序的性能指标
- 使用PM2 启动ASP.NET Core应用程序
- @Register 和 @Import 之间有什么区别呢?什么地方最适合由 ASP.NET 应用程序使用的非系统程序集 DLL?
- ASP.NET MVC应用程序中实现国际化(结合使用AngularJS)
- 在ASP.NET应用程序中使用身份模拟(Impersonation)
- Asp.net 程序部署问题——在应用程序级别之外使用注册为 allowDefinition='MachineToApplicati错误信息
- 通过使用客户端证书调用 Web 服务以便在 ASP.NET Web 应用程序中进行身份验证
- [12] 使用 MVC 5 的 EF6 Code First 入门 系列:为ASP.NET MVC应用程序使用高级功能
- 限制某个asp.net应用程序使用的内存的大小
- 使用ASP.NET操作IIS7中应用程序