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.然后就同時在控制台和日志文件中記錄日志(因為配置文件中配置了兩種日志記錄方式):

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM