상세 컨텐츠

본문 제목

[.NET] NLog 사용 for .NET and .NET Core

.NET

by 코딩하는 박줄기 2022. 9. 24. 23:30

본문

728x90
반응형

NLog는 다양한 .NET 플랫폼을 위한 유연한 무료 로깅 플랫폼입니다. NLog를 사용하면 데이터베이스, 파일, 콘솔 등 여러 대상에 쉽게 로깅을 할 수 있습니다.

 

 *Visual Studio 2022, .NET 6.0, console Project

NLog 사용

1. NuGet을 사용하여 csproj에 종속성 추가

솔루션 탐색기 -> 프로젝트 -> 우 클릭 > NuGet 패키지 관리(N)-> 아래 항목 설치
1. NLog.Extensions.Logging
2. Microsoft.Extensions.DependencyInjection
3. Microsoft.Extensions.Configuration.Json

 

2. nlog.config 파일을 생성합니다.

응용 프로그램 프로젝트의 루트에 nlog.config(모두 소문자) 파일을 만듭니다

<?xml version="1.0" encoding="utf-8" ?>
<!-- XSD manual extracted from package NLog.Schema: https://www.nuget.org/packages/NLog.Schema-->
<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"
      internalLogFile="c:\temp\console-example-internal.log"
      internalLogLevel="Info" >

  <!-- the targets to write to -->
  <targets>
    <!-- write logs to file -->
    <target xsi:type="File" name="logfile" fileName="{basedir}/logs/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="*" minlevel="Trace" writeTo="logfile,logconsole" />
  </rules>
</nlog>

프로젝트 파일에 다음과 같은 속성을 추가합니다.

 <ItemGroup>
     <None Update="nlog.config" CopyToOutputDirectory="Always" />
 </ItemGroup>

 

3. 로그 구현

//Program.cs
using Microsoft.Extensions.Logging;
using NLog.Extensions.Logging;

var logger = LoggerFactory.Create(builder => builder.AddNLog()).CreateLogger<Program>();
//LoggerFactory.Create() : 새 ILoggerFactory 인스턴스를 만듭니다.
//CreateLogger() : 새 ILogger 인스턴스를 만듭니다.
logger.LogInformation("Program has started.");
Console.ReadKey();

 

참고

728x90
반응형

관련글 더보기

댓글 영역