[转]asp.net5中使用NLog进行日志记录

本文转自:http://www.cnblogs.com/sguozeng/articles/4861303.html

asp.net5中使用NLog进行日志记录

asp.net5中提供了性能强大的日志框架,本身也提供了几种日志记录方法,比如记录到控制台或者事件中等,但是,对大部分程序员来说,更喜欢使用类似log4net或者Nlog这种日志记录方式,灵活而强大。asp.net5中也包括NLog的实现,下面把最简单的使用方法写出来,抛砖引玉,让更多对此不熟悉的同学们能借此入门。

1.在project.json中添加对Microsoft.Framework.Logging.NLog的引用,目前最新是beta8版本:

2.然后添加NLog.config配置文件到项目根目录:

Nlog.config的内容可以参考如下:

 1 <?xml version="1.0" encoding="utf-8" ?>
 2 <nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
 3       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4       autoReload="true">
 5
 6   <targets>
 7     <target name="logfile"
 8             xsi:type="File"
 9             fileName="c://logs/${shortdate}.log"
10             layout="${longdate}|${level:uppercase=true}|${logger}|${event-context:item=EventId}|${message}|${ndc}" />
11     <target name="console"
12             xsi:type="ColoredConsole"
13             layout="[${level:uppercase=true}:${logger}] ${message}"/>
14   </targets>
15
16   <rules>
17     <logger name="*" minlevel="Info" writeTo="logfile,console" />
18   </rules>
19 </nlog>

因为asp.net5启动目录不适合查看日志,所以这里直接把日志写死到固定文件夹内,没有使用相对目录。 3.取得nlog.config配置文件所在的目录,也就是系统根目录:

public Startup(IApplicationEnvironment env)
        {
            var builder = new ConfigurationBuilder(env.ApplicationBasePath)
                        .AddJsonFile("Config.json")
                        .AddEnvironmentVariables();
            Configuration = builder.Build();

            //取得系统启动目录
            BasePath = env.ApplicationBasePath;
        }

        //系统启动目录
        public static string BasePath { get; set; }

这里把根目录存储到BasePath中。

4.根据配置文件生成Nlog日志对象

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerfactory)
        {
            //nlog配置文件路径
            string fileName = Path.Combine(BasePath, "nlog.config");
            //nlog配置对象
            NLog.Config.XmlLoggingConfiguration config = new NLog.Config.XmlLoggingConfiguration(fileName);
            //添加Nlog到日志工厂
            loggerfactory.AddNLog(new NLog.LogFactory(config));

            var log = loggerfactory.CreateLogger("asp5test");
            log.LogInformation("可以记录日志了!");

5.然后就同时在控制台和日志文件中记录日志(因为配置文件中配置了两种日志记录方式):

时间: 2024-11-03 05:42:26

[转]asp.net5中使用NLog进行日志记录的相关文章

asp.net5中使用NLog进行日志记录

asp.net5中提供了性能强大的日志框架,本身也提供了几种日志记录方法,比如记录到控制台或者事件中等,但是,对大部分程序员来说,更喜欢使用类似log4net或者Nlog这种日志记录方式,灵活而强大.asp.net5中也包括NLog的实现,下面把最简单的使用方法写出来,抛砖引玉,让更多对此不熟悉的同学们能借此入门. 1.在project.json中添加对Microsoft.Framework.Logging.NLog的引用,目前最新是beta8版本: 2.然后添加NLog.config配置文件到

说说asp.net中的异常处理和日志追踪

关于异常的处理想必大家都了解try{}catch(){}finally{},这里就不再讲了.通过在VS里的"调试"-"异常",在弹出的异常对话框里的Common Language Runtime Exceptions栏里是.NET中的异常层次结构. 自定义异常: 如果系统提供的异常类已经不能够满足应用系统开发的需要,或者开发团队需要一套自定义异常处理机制,可以创建自定义的异常类.自定义异常类应该直接过间接地继承自ApplicationException类,并且其最好

导数中的最小化日志记录:背景和理论

什么是最小化日志(Minimal Logging) 当数据库的恢复模式为SIMPLE或者BULK_LOGGED时,对于最小化日志类型的操作,事务日志不记录单独每个数据行的日志,而是记录对应页和区结构的修改日志.这样显著减少了操作产生的事务日志数量.例如,向某个数据页上插入200行数据,在最小化日志记录的情况下,只会记录一条此数据页变化的日志,而不是200条Insert日志. 最小化日志类型的操作 SELECT INTO Bulk导数操作,包括 BULK INSERT和BCP INSERT INT

ASP.NET5 中静态文件的各种使用方式

所谓静态文件,包含HTML文件,css文件.图片文件和js文件等,他们是服务器直接读取到客户端的一些资源,在这篇文章中,我们将解释关于ASP.NET5和静态文件的一些内容. 服务端的静态文件 默认情况下,静态文件被存放在项目的wwwroot目录下,而wwwroot的地址被定义在project.json文件中: { "webroot": "wwwroot", ... } 静态文件被存储在wwwroot下的任何目录中,它被客户端以相对路径的方式访问,例如,当你在Visu

在asp.net core的项目中通过log4net添加日志记录到本地文件

=============================================== 2020/2/25_第1次修改                       ccb_warlock =============================================== 由于之前的时间都忙于项目的业务开发,对于log4net的使用一直是“拿来主义”,仅仅用在了调试时输出到控制台看结果,而没有深究配置文件的参数和具体的机制. 正巧这段时间项目进度没有那么紧张,我也有时间来完善框

asp.net5中程序根目录的获取

最近在写一个asp.net5的应用,其中要实现的一个功能是生成一个文件,并且存储到应用程序根目录(这里指project.json所在的文件夹)下的export文件夹下.生成文件内容什么的都做好了,忽然发现不知道如何存储,因为asp.net5的特性,不好直接得到根目录.按照以前的思路,通过AppDomain.CurrentDomain.BaseDirectory得到的是dnx的bin文件夹,毕竟应用程序是dnx负责启动的,这个路径一般是"C:\\Users\\daxia\\.dnx\\runtim

在android中配置 slf4j + log4j 日志记录框架

需求: 在项目开发中,需要记录 操作日志 .起初自己写了个简单的日志记录文本写入到文本的方法,后来随着项目的膨胀,需要考虑更多的操作,开始考虑性能问题. 实现: 考虑使用 slf4j + log4j 框架来实现.slf4j 是日志记录的一个facade,支持多种日志框架.log4j是个很优秀的日志记录框架. 实现: 下载类库: 先到各主站点下载类库 slf4j 网址 :http://www.slf4j.org/download.html log4j网址: http://logging.apach

Python 中更优雅的日志记录方案

---恢复内容开始--- 阅读本文大概需要 5 分钟. 在 Python 中,一般情况下我们可能直接用自带的 logging 模块来记录日志,包括我之前的时候也是一样.在使用时我们需要配置一些 Handler.Formatter 来进行一些处理,比如把日志输出到不同的位置,或者设置一个不同的输出格式,或者设置日志分块和备份.但其实个人感觉 logging 用起来其实并不是那么好用,其实主要还是配置较为繁琐. 常见使用 首先看看 logging 常见的解决方案吧,我一般会配置输出到文件.控制台和

php项目中常用的log日志记录方法

/** * ****************** * 1.写入内容到文件,追加内容到文件 * 2.打开并读取文件内容 * ******************* */ function save_log($path, $msg) { if (! is_dir($path)) { mkdir($path); } $filename = $path . '/' . date('YmdHi') . '.txt'; $content = date("Y-m-d H:i:s")."\r