Logging in multiple files using NLog

user3061597 picture user3061597 · Dec 3, 2013 · Viewed 28.5k times · Source

I am using NLog for logging purpose.

My code is as follows:

<?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">

  <!-- make sure to set 'Copy To Output Directory' option for this file -->
  <!-- go to http://nlog-project.org/wiki/Configuration_file for more information -->

  <targets>
    <target
      name="logfile"
      xsi:type="File"
      layout="${message}"
      fileName="${basedir}../Data/debugLog1.txt"
      archiveAboveSize ="5000000"
      maxArchiveFiles="2"/>
  </targets>

  <rules>
    <logger name="*" minlevel="Trace" writeTo="logfile" />
  </rules>
</nlog>

I am logging data in debugLog1.txt. Now, from another location in the project, I also want to log data, but this data is of another type so I want to make a debugLog2.txt and log data to it. How can I modify my code above to do so?

Answer

Alexander Burov picture Alexander Burov · Dec 3, 2013

I think you need to define another logger.

<logger name="SpecialLogger" minlevel="Trace" writeTo="logfile2" />

To log to it:

var logger = LogManager.GetLogger("SpecialLogger");