Web.config에 직접 설정
$r_title(Web.config) <configSections> <section name="nlog" type="NLog.Config.ConfigSectionHandler, NLog"/> </configSections> <nlog throwConfigExceptions="true" xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <targets> <target name="LogFile" xsi:type="File" layout="${longdate} [${uppercase:${level:padding=-5}}] ${message} ${exception:format=tostring}" fileName="${basedir}Logs\${var:runtime}\${date:format=yyyyMMdd}.log" encoding="UTF-8" archiveFileName="${basedir:processDir=true}Logs\archives\${var:runtime}\archive.{#}.log" archiveEvery="Day" archiveNumbering="Rolling" maxArchiveFiles="7" header="[Start Logging]" footer="[End Logging]${newline}"/> </targets> <rules> <logger name="*" minlevel="Info" writeTo="LogFile"/> </rules> </nlog>
App.config나 web.config 파일에 nlog를 embedded 할 경우 section을 지정
<configSections> <section name="nlog" type="NLog.Config.ConfigSectionHandler, NLog"> </configSections>
로그 생성 중 예외가 발생했을 경우 출력 옵션
<nlog throwConfigExceptions="true" …………… >
변수 설정
<variable name=”logDir” value=”${basedir}/logs/”>
target 지정 시 출력 layout을 CSV, JSON, XML 혹은 File 형태로 지정 가능
<targets> <target name="LogFile" xsi:type="File" layout="${longdate} [${uppercase:${level:padding=-5}}] ${message} ${exception:format=tostring}" fileName="${basedir}Logs\${var:runtime}\${date:format=yyyyMMdd}.log" encoding="UTF-8" archiveFileName="${basedir:processDir=true}Logs\archives\${var:runtime}\archive.{#}.log" archiveEvery="Day" archiveNumbering="Rolling" maxArchiveFiles="7" header="[Start Logging]" footer="[End Logging]${newline}"> </targets>
Rule 설정
<rules> <logger name="*" minlevel="Info" writeTo="LogFile"> <logger name="Com.Nexacro.Dotnet.Xapi.Tx.*" minlevel="Info" writeTo="LogFile"> </rules>
환경 변수 및 XML 설정 참고
Layout 환경 변수
https://nlog-project.org/config/?tab=layout-renderers
XML 설정
https://github.com/nlog/NLog/wiki/Configuration-file#variables