今天小编给大家分享一下.Net 6怎么添加NLog的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
创建一个.Net 6 Demo项目
引入NLog包
添加项目配置文件nlog.config
<?xml version="1.0" encoding="utf-8"?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xsi:schemaLocation="NLog NLog.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
autoReload="true" >
<!-- the targets to write to -->
<targets>
<!--单个文件过大会导致写入效率下降,可配置单个文件的最大容量-->
<target name="File" xsi:type="AsyncWrapper" queueLimit="5000" overflowAction="Discard">
<target xsi:type="File"
fileName="${basedir}/logs/${shortdate}.log"
layout="${date:yyyy-MM-dd HH\:mm\:ss} ${level:uppercase=true} ${event-context:item=Action} ${message} ${event-context:item=Amount} ${stacktrace}"
archiveAboveSize="10240"
archiveEvery="Day"
/>
</target>
<!-- write logs to file -->
<!--<target xsi:type="File" name="logfile" fileName="c:\temp\console-example.log"
layout="${longdate}|${level}|${message} |${all-event-properties} ${exception:format=tostring}" />-->
<!--<target xsi:type="Console" name="logconsole"
layout="${longdate}|${level}|${message} |${all-event-properties} ${exception:format=tostring}" />-->
</targets>
<!-- rules to map from logger name to target -->
<rules>
<!--<logger name="*" levels="Debug,Info,Warn,Error" writeTo="File" />-->
<logger name="*" minlevel="Debug" maxlevel="Error" writeTo="File" />
</rules>
</nlog>
layout布局:
${longdate} 格式:2022-01-21 17:00:28.4860
后面的毫秒不是我想要的,可以自定义:date:yyyy-MM-dd HH\:mm\:ss
NLog等级
Trace:最常见的记录信息,一般是普通输出
Debug:同样是记录信息,出现的频率比Trace少,一般是调试程序
Info:信息类型的消息
Warn:警告消息
Error:错误消息
自上而下,等级递增
指定特定等级:level="Warn"
指定多个等级:levels="Debug,Info" 以逗号分隔
指定等级范围:minlevel="Info" maxlevel="Error"
<rules>
<!--<logger name="*" levels="Debug,Info,Warn,Error" writeTo="File" />-->
<logger name="*" minlevel="Debug" maxlevel="Error" writeTo="File" />
</rules>
添加工具类 Logger
using NLog;
namespace TestNet6.Utilities
{
public class Logger
{
NLog.Logger _logger { get; set; }
private Logger(NLog.Logger logger)
{
_logger = logger;
}
public Logger(string name) : this(LogManager.GetLogger(name))
public static Logger Default { get; private set; }
static Logger()
Default = new Logger(LogManager.GetCurrentClassLogger());
#region Dedub
public void Debug(string msg, params object[] args)
_logger.Debug(msg, args);
public void Debug(string msg, Exception e)
_logger.Debug(e, msg);
#endregion
#region Info
public void Info(string msg, params object[] args)
_logger.Info(msg, args);
public void Info(string msg, Exception e)
_logger.Info(e, msg);
#region Trace
public void Trace(string msg, params object[] args)
_logger.Trace(msg, args);
public void Trace(string msg, Exception e)
_logger.Trace(e, msg);
#region Warn
public void Warn(string msg, params object[] args)
_logger.Warn(msg, args);
public void Warn(string msg, Exception e)
_logger.Warn(e, msg);
#region Error
public void Error(string msg, params object[] args)
_logger.Error(msg, args);
public void Error(string msg, Exception e)
_logger.Error(e, msg);
}
}
添加测试Controller
using Microsoft.AspNetCore.Mvc;
using TestNet6.Utilities;
namespace TestNet6.Controllers
{
public class TestController : Controller
{
public ActionResult Index()
{
return View();
}
public string Test()
{
Logger.Default.Info("", Request);
return "Test String";
}
}
}
最后为了路由有效,还需要添加路由映射
var builder = WebApplication.CreateBuilder(args);
// Add services to the container.
builder.Services.AddRazorPages();
var app = builder.Build();
// Configure the HTTP request pipeline.
if (!app.Environment.IsDevelopment())
{
app.UseExceptionHandler("/Error");
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseAuthorization();
app.MapRazorPages();
//添加路由映射
app.MapControllerRoute(name: "default", pattern: "{controller=Home}/{action=Index}/{id?}");
app.Run();
OK,运行测试
以上就是“.Net 6怎么添加NLog”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注亿速云行业资讯频道。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。