NuGet packge manager에서 NLog.Web.AspNetCore 패키지를 검색해서 설치해줍니다.
검색이 귀찮으면 프로젝트 파일에 직접 써넣습니다.
<PackageReference Include="NLog.Web.AspNetCore" Version="5.2.1" />
Program.cs 파일에 아래 코드를 추가합니다.
using NLog.Web;
...
// NLog
builder.Logging.ClearProviders();
builder.Logging.SetMinimumLevel(LogLevel.Trace);
builder.Host.UseNLog();
...
var app = builder.Build();
아래와같이 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="Info"
internalLogFile="c:\temp\internal-nlog-AspNetCore.txt">
<variable name="logFilePath" value="./Logs/MyApp.${shortdate}.log" />
<extensions>
<add assembly="NLog.Web.AspNetCore"/>
</extensions>
<targets>
<target xsi:type="File"
name="logfile"
fileName="${logFilePath}"
layout="${longdate} - LEVEL=${level:upperCase=true}: ${message}"
keepFileOpen="true"
encoding="utf-8"
archiveAboveSize="10000000"
archiveNumbering="DateAndSequence"
archiveDateFormat="yyyy-MM-dd" />
<target xsi:type="Console"
name="console"
layout="${longdate} - LEVEL=${level:upperCase=true}: ${message}" />
</targets>
<!-- rules to map from logger name to target -->
<rules>
<logger name="*" minlevel="Debug" writeTo="logfile" />
<logger name="*" minlevel="Debug" writeTo="console" />
</rules>
</nlog>
이제 ILogger 인터페이스로 쓰여진 모든 log 메세지들도 NLog로 redirect되므로 NLog의 logging 함수들을 사용해도 되고 ILogger 인터페이스의 함수들을 사용해도 됩니다.
public ILogger Logger { get; }
public NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger();
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
Logger.LogInformation("Log message from ILogger");
logger.Info("Log message from NLog");
}
'Development > ASP.Net' 카테고리의 다른 글
[ASP.Net] ASP.Net 6 에서 모든 Origin을 허용하는 CORS 설정 (1) | 2023.01.25 |
---|---|
[ASP.Net] ASP.Net core 6 프로젝트 파일에서 wwwroot 폴더의 모든 파일 포함시키기 (0) | 2023.01.18 |
[ASP.NET] WebAPI 프로젝트에서 wwwroot 폴더의 index.html로 기본 라우팅 시키기 (0) | 2023.01.18 |
[ASP.NET] ASP.Net core 6 Kestrel 기본 호스팅 주소 및 포트 변경하기 (0) | 2023.01.18 |
[ASP.NET] appsettings.json 에 정의된 특정 section을 class에 Mapping해서 사용하기 (0) | 2023.01.17 |