1、NLog的安装
1).NET Core项目
在Nuget管理程序中,搜索'NLog
' =》选中然后点击'安装
'。然后再搜索"NLog.Extensions.Logging
",然后点击安装。
2)ASP .NET Core项目
除上述安装的Nuget包,还需要安装NLog.Web.AspNetCore
,同样上述方法,搜索安装即可。
相关文档:VS(Visual Studio)中Nuget的使用
注意:NLog.Config
不是必需安装,它是用来生成配置文件的。
2、NLog的配置
1)NLog配置文件
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <targets> <!--屏幕打印消息--> <target name="console" xsi:type="ColoredConsole" layout="${date:format=HH\:mm\:ss}> ${message}"/> <!--VS输出窗口--> <target name="debugger" xsi:type="Debugger" layout="${date:format=HH\:mm\:ss} | ${level:padding=-5} | ${message}" /> <!--保存至文件--> <target name="error_file" xsi:type="File" archiveAboveSize="2000000" maxArchiveFiles="30" fileName="${basedir}/Logs/Error/${shortdate}/error.txt" layout="${longdate} | ${level:uppercase=false:padding=-5} | ${message} ${onexception:${exception:format=tostring} ${newline} ${stacktrace} ${newline}" /> <!--保存至文件--> <target name="info_file" xsi:type="File" archiveAboveSize="2000000" maxArchiveFiles="30" fileName="${basedir}/Logs/Info/${shortdate}/info.txt" layout="${longdate} | ${level:uppercase=false:padding=-5} | ${message} ${onexception:${exception:format=tostring} ${newline} ${stacktrace} ${newline}" /> </targets> <rules> <!--<logger name="*" writeTo="console" />--> <logger name="*" minlevel="Debug" writeTo="debugger" /> <logger name="*" minlevel="Error" writeTo="error_file" /> <logger name="*" minlevel="Info" writeTo="info_file" /> </rules> </nlog>
2).NET Core控制台项目
本文示例不使用自动生成配置文件,通过上述配置文件内容,在Program.cs
的同级目录,新建NLog.Config
配置文件。在新建的NLog.config
配置文件上,点击"鼠标右键
"=》点击"属性
"=》在"复制到输出目录"
中=》选择"始终复制
"。
3)ASP .NET Core项目
依照上述步骤新建NLog.Config
配置文件。
3、NLog使用代码
1).NET Core控制台项目
using System; using System.Threading.Tasks; using NLog; namespace ConsoleApp1 { class Program { static void Main(string[] args) { //加载NLog.config配置文件 LogManager.LoadConfiguration("NLog.config"); Logger logger = LogManager.GetCurrentClassLogger(); logger.Trace("Trace Message"); logger.Debug("Debug Message"); logger.Info("Info Message"); logger.Error("Error Message"); logger.Fatal("Fatal Message"); Console.WriteLine("Hello World!"); Console.ReadKey(); } } }
2)ASP .NET Core项目
在项目Startup.cs
中修改Configure()
方法,具体如下:
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) { //app.UseStaticFiles(); //使用NLog作为日志记录工具 loggerFactory.AddNLog(); //引入Nlog配置文件 env.ConfigureNLog("NLog.config"); if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.UseAuthentication(); app.UseMvc(); }
在控制器中的注入代码 :
public class ValuesController : Controller { private ILogger<ValuesController> logger; public ValuesController(ILogger<ValuesController> _logger) { logger = _logger; } // GET api/values [HttpGet] public string Get() { logger.LogError("123"); return "value"; } }
也可以通过private NLog.ILogger logger = NLog.LogManager.GetCurrentClassLogger();
这种方式直接使用。