Skip to content

Instantly share code, notes, and snippets.

@DamianSuess
Created July 28, 2022 18:14
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save DamianSuess/3b12c1645e208a2fe42cf11dab7841ce to your computer and use it in GitHub Desktop.
Save DamianSuess/3b12c1645e208a2fe42cf11dab7841ce to your computer and use it in GitHub Desktop.
Sample NLog Config for ASP.NET
<?xml version="1.0" encoding="utf-8" ?>
<!--
REPLACE: "MyApp" with your app name
Logging Help:
Base log level is set by, 'internalLogLevel'. ASP.NET can override via, 'appsettings.json'
Log Levels: Off|Trace|Debug|Info|Warn|Error|Fatal
-->
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
autoReload="true"
internalLogLevel="Trace">
<!-- enable asp.net core layout renderers -->
<extensions>
<add assembly="NLog.Web.AspNetCore" />
</extensions>
<!-- Output Targets -->
<targets>
<target name="logFile"
xsi:type="File"
fileName="Log/MyApp.log"
archiveFileName="Log/MyApp.{##}.log"
archiveAboveSize="10000000"
archiveNumbering="Rolling"
maxArchiveFiles="4"
openFileCacheTimeout="30"
layout="[${longdate}] [${event-properties:item=EventId_Id:whenEmpty=0}] [${uppercase:${level}}] [${logger}] [${message:exceptionSeparator=\r\n:withException=true}]" />
<target name="logError"
xsi:type="File"
fileName="Log/MyApp-Error.log"
archiveFileName="Log/MyApp-Error.{##}.log"
archiveAboveSize="10000000"
archiveNumbering="Rolling"
maxArchiveFiles="4"
layout="[${longdate}] [${event-properties:item=EventId_Id:whenEmpty=0}] [${uppercase:${level}}] [${logger}] [${message} ${exception:format=ToString}]" />
<target name="logConsole"
xsi:type="Console" />
</targets>
<!-- Target Rules -->
<rules>
<logger name="*" minlevel="Trace" writeTo="logFile" />
<logger name="*" minlevel="Error" writeTo="logError" />
<logger name="*" minlevel="Info" writeTo="logConsole" />
<!-- Output hosting lifetime messages to console target for faster startup detection -->
<logger name="Microsoft.Hosting.Lifetime" minlevel="Info" writeTo="logconsole" final="true" />
<!-- Skip non-critical Microsoft logs and so log only own logs (BlackHole) -->
<logger name="Microsoft.*" maxlevel="Debug" final="true" />
<logger name="System.Net.Http.*" maxlevel="Info" final="true" />
</rules>
</nlog>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment