Question

Je suis en train connecter des entrées dans un fichier journal (Log.Trace / log.debug) tandis que mes séries de tests unitaires VS. J'ai également copié le fichier NLog.config à sortir le répertoire par attribut DeploymentItem sur la classe. Toujours mon fichier journal est pas créé. Toute aide à comment les entrées du journal dans un fichier même que nous faisons pour application web normal.

Était-ce utile?

La solution

Je viens de trouver une solution à ce problème: Ajoutez le fichier App.config au projet de test unitaire yout avec le contenu suivant:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="nlog" type="NLog.Config.ConfigSectionHandler, NLog"/>
  </configSections>

  <nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

    <targets>
      <target name="debugLog" xsi:type="Console" />
    </targets>

    <rules>
      <logger name="*" minlevel="Debug" writeTo="debugLog"></logger>
    </rules>

  </nlog>

</configuration>

Vous pouvez mettre toute configuration que vous souhaitez comme avec le fichier NLog.config.

Autres conseils

Malheureusement, c'est la seule solution XML à l'époque. Il est non seulement de tests unitaires, cependant. NLog.config ne fonctionne pas avec juste une application console.

Je ne sais pas si elle est par la conception ou tout simplement un oubli. Quoi qu'il en soit, je ne dirais pas que le déplacement NLog.config à l'article App.config est une manière satisfaisante = /

Peut-être qu'il vaut la peine de noter qu'il ya une possibilité de configurer nlog directement à partir du code, ce qui pourrait être utile dans certains scénarios. On pourrait également heureux de trouver l'option de débogage nlog, qui enregistrera le processus de fichier de configuration de traitement, l'enregistrement des cibles et ainsi de suite ...

Pour l'activer, il suffit d'ajouter internalLogFile et internalLogLevel attribue à l'élément NLog:

<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" internalLogFile="C:/logs/nlog.txt" internalLogLevel="Debug">

ou de code:

    InternalLogger.LogFile = @"c:\logs\nlog.txt";

    InternalLogger.LogLevel = LogLevel.Trace;
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top