NLog does not record debug messages

In my code I have informational messages like logger.Log("dwewe")and logger.Debug("ddddf").

The problem is that Debug messages are not written even when debugging in VS.

<?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"
      throwExceptions="true"
      internalLogLevel="Trace"
      internalLogFile="c:\nlog-app.log"
      autoReload="false"
      internalLogToConsole="true">
  <!--
  See http://nlog-project.org/wiki/Configuration_file
  for information on customizing logging rules and outputs.
   -->
  <targets>
    <!-- file targets -->
    <target name="asyncFile" xsi:type="AsyncWrapper">
      <target xsi:type="File" name="f" fileName="${basedir}/Logs/${shortdate}.log"
            layout="${longdate} ${uppercase:${level}} ${message} ${event-context:item=error-source} ${event-context:item=error-class} ${event-context:item=error-method} ${event-context:item=error-message} ${event-context:item=inner-error-message} ${event-context:item=stack-trace}"/>
    </target>

    <!-- database targets -->
    <target name="database" xsi:type="Database" keepConnection="true" useTransactions="true"
             dbProvider="System.Data.SqlClient"
             connectionString="data source=XXXXXX.database.windows.net;initial catalog=NLog;integrated security=false;persist security info=True;User ID=XXXXr;Password=BXXXX3"
              commandText="INSERT INTO Logs(EventDateTime, EventLevel, UserName, MachineName, EventMessage, ErrorSource, ErrorClass, ErrorMethod, ErrorMessage, InnerErrorMessage, StackTrace) VALUES (@EventDateTime, @EventLevel, @UserName, @MachineName, @EventMessage, @ErrorSource, @ErrorClass, @ErrorMethod, @ErrorMessage, @InnerErrorMessage, @StackTrace)">
      <!-- parameters for the command -->
      <parameter name="@EventDateTime" layout="${date:s}" />
      <parameter name="@EventLevel" layout="${level}" />
      <parameter name="@UserName" layout="${windows-identity}" />
      <parameter name="@MachineName" layout="${machinename}" />
      <parameter name="@EventMessage" layout="${message}" />
      <parameter name="@ErrorSource" layout="${event-context:item=error-source}" />
      <parameter name="@ErrorClass" layout="${event-context:item=error-class}" />
      <parameter name="@ErrorMethod" layout="${event-context:item=error-method}" />
      <parameter name="@ErrorMessage" layout="${event-context:item=error-message}" />
      <parameter name="@InnerErrorMessage" layout="${event-context:item=inner-error-message}" />
      <parameter name="@StackTrace" layout="${event-context:item=stack-trace}" />

    </target>

    <target name="console" xsi:type="Console" />

  </targets>
  <rules>
    <!-- add your logging rules here -->
    <logger name="*" minlevel="Info" writeTo="database" />
    <logger name="*" minlevel="Error" writeTo="asyncFile" />
    <logger name="*" minlevel="Trace" writeTo="console" />
  </rules>
</
+3
source share
3 answers

The reason you can't get Debug is because debug is the lowest level log just add the following tag to the rule tag in the nlog.config file.

 <logger name="*" minlevel="Debug" writeTo="console" />
+8
source

You are using 3 different targets.

The database task is set to the information level, therefore, debugging messages are not sent there. The target of the file only accepts error messages (and above), so there will be no debugging either.

- , . , , . . , .

.

+2

, , : fooobar.com/questions/1408498/...

NLog.config, , " " . , NLog App.config.

I think that I could cause this problem for myself by trying to copy the NLog configuration file from another project manually; or because by adding NLog to my project, I got a permission error (of which I cannot recall any specific details) - simply passing this information if it helps someone diagnose their problem.

+1
source

All Articles