How can I output NLog messages to Visual Studio's Output Window?

Viewed 13829

I'm trying to send the output to the console (or colouredconsole) ... which I'm hoping would (also?) go to the Visual Studio's Output window for any ASP.NET web site/app/mvc app.

It doesn't by default, but if I change the target to 'file' then it works for sure.

Can NLog output to the Output window for web apps?

2 Answers

You can use this configuration file (nlog.config in the app path):

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

  <targets>
        <target name="debugger" xsi:type="Debugger" layout="${logger}::${message}"/>
  </targets>

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

-Scott

Adding to Scott P's answer, you can add a filter for when the environment is not "Development" to prevent any slowdowns in Staging/Production etc.

<logger name="*" minlevel="Trace" writeTo="debugger">
    <filters defaultAction="Ignore">
        <when condition="'${environment:ASPNETCORE_ENVIRONMENT}' == 'Development'" action="Log" />
    </filters>
</logger>
Related