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();
这种方式直接使用。