1.在Nuget上搜索 NLog.Extensions.Logging 安装最新版
2.添加日志配置文件,在项目指定目录下添加配置文件nlog.config,内容添加如下:
<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
autoReload="true"
internalLogLevel="Warn"
internalLogFile="c:\temp\internal-nlog.txt"> <!-- define various log targets -->
<targets>
<!-- write logs to file -->
<target xsi:type="File" name="allfile" fileName="c:\temp\nlog-all-${shortdate}.log"
layout="${longdate}|${event-properties:item=EventId.Id}|${logger}|${uppercase:${level}}|${message} ${exception}" /> <target xsi:type="File" name="ownFile-web" fileName="c:\temp\nlog-own-${shortdate}.log"
layout="${longdate}|${event-properties:item=EventId.Id}|${logger}|${uppercase:${level}}| ${message} ${exception}" /> <target xsi:type="Null" name="blackhole" />
</targets> <rules>
<!--All logs, including from Microsoft-->
<logger name="*" minlevel="Trace" writeTo="allfile" /> <!--Skip Microsoft logs and so log only own logs-->
<logger name="Microsoft.*" minlevel="Trace" writeTo="blackhole" final="true" />
<logger name="*" minlevel="Trace" writeTo="ownFile-web" />
</rules>
</nlog>
3.将nlog.config添加到project.json配置文件中(若配置文件在指定config目录下,可以添加config/*.config)
"publishOptions": {
"include": [
"wwwroot",
"Views",
"appsettings.json",
"web.config",
"nlog.config"
]
},
4.在startup.cs文件Configure中添加
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
loggerFactory.AddNLog();
env.ConfigureNLog("nlog.config");
…………
5.记录日志方法
(1) public class HomeController : Controller
{
private static Logger Logger = LogManager.GetCurrentClassLogger();
public IActionResult Index()
{
Logger.Info("Index page says hello");
return View();
}
………… (2) public abstract class BaseController<T> : Controller
{
protected ILogger<T> Logger { get; set; }
public BaseController(ILogger<T> logger, IOptions<ApplicationSiteConfig> appConfig)
{
this.Logger = logger;
}
…………
参考:https://github.com/NLog/NLog.Extensions.Logging