This asp.net tutorial explains, how to archive log files using NLog with ASP.NET Core. Most of the time, we will store logs in files, and we should archive them so that we can manage them easier. Let’s take a look at how to use NLog to archive log files.
Archive log files using NLog with ASP.NET Core
Step-1: New Application
Create a new ASP.NET Core Web API Application and install NLog.Web.AspNetCore via NuGet.
Install-Package NLog.Web.AspNetCore
Step-2: nlog.config
Create a nlog.config file, and enable copy to bin folder. We just archive the log files via this configuration file.
<?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"
throwConfigExceptions="true">
<!– the targets to write to –>
<targets>
<target xsi:type="File"
name="archive"
archiveEvery="Day"
archiveFileName = "nlogdemo-{########}.log"
archiveNumbering = "Date"
archiveDateFormat = "yyyyMMdd"
maxArchiveFiles = "4"
fileName="nlogdemo.log"
layout="${longdate}|${level:uppercase=true}|${logger}|${message}" />
</targets>
<!– rules to map from logger name to target –>
<rules>
<!–All logs, including from Microsoft–>
<logger name="*" minlevel="Warn" writeTo="archive" />
</rules>
</nlog>
Just pay attention to the options that contains archive.
The above configuration means that we have a main log file named nlogdemo.log which stores today’s log.
It will archive logs daily and the file name of the archive log file will be formatted like nlogdemo-20180505.log.
And the max number of archived log files is 4 which means it will keep only the newest 4 files.
Step-3: program.cs
Update program.cs so that we can enable NLog.
namespace NLogDemo
{
using Microsoft.AspNetCore;
using Microsoft.AspNetCore.Hosting;
using NLog.Web;
public class Program
{
public static void Main(string[] args)
{
BuildWebHost(args).Run();
}
public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.UseNLog()
.Build();
}
}
Step-4:
Write some logs in controller.
private readonly ILogger _logger;
public ValuesController(ILoggerFactory loggerFactory)
{
_logger = loggerFactory.CreateLogger<ValuesController>();
}
// GET api/values
[HttpGet]
public IEnumerable<string> Get()
{
_logger.LogDebug("debug");
_logger.LogError("error");
_logger.LogTrace("trace");
_logger.LogInformation("info");
_logger.LogWarning("warn");
_logger.LogCritical("critical");
return new string[] { "value1", "value2" };
}
Now, change the date of the computer then we can see a log file with the updated date.
You may like following asp.net tutorials:
- Download Asp.Net Books PDF Free
- Asp.Net MVC 5 Cascading DropDown List Using jQuery
- Asp.Net MVC Life Cycle and Various State Management Techniques in Asp.Net MVC
- Transfer data from controller to view asp.net MVC
- How to set up session state in our ASP.NET Core and MVC Core Web applications?
- How to show Progress Bar in Asp.Net using jQuery?
- How to Implement Log4Net in ASP.NET Core Application
Here we discussed Basic configuration to archive log files using NLog. We learned how to use NLog to archive log files and how to use nlog with asp.net core.
MVP Award Winner | Community Author & Contributor | Software Developer | Most Valuable Blogger(MVB)