.NET Core和ASP.NET Core 日志框架Nlog安装配置及示例代码
时间:2022-09-27
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配置文件<targets>
<nlog xmlns="
http://www.nlog-project.org/schemas/NLog.xsd
" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>
<!--屏幕打印消息-->
<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 { >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
中修改Conp()
方法,具体如下:
public void Conp(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) { //app.UseStaticFiles(); //使用NLog作为日志记录工具 loggerFactory.AddNLog(); //引入Nlog配置文件 env.ConpNLog("NLog.config"); if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.UseAuthentication(); app.UseMvc(); }
在控制器中的注入代码 :
public >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();
这种方式直接使用。
特别声明:本站部分内容收集于互联网是出于更直观传递信息的目的。该内容版权归原作者所有,并不代表本站赞同其观点和对其真实性负责。如该内容涉及任何第三方合法权利,请及时与824310991@qq.com联系,我们会及时反馈并处理完毕。