2016-10-13 6 views
1

Ich habe eine sehr einfache Konsolen-App. Ich habe Nlog mit dem Konsolenziel hinzugefügt, aber ich kann es nicht ausführen, wenn es in Mono läuft (unter Windows und Ubuntu). Ich habe das Dateiziel ausprobiert und es funktioniert. Was fehlt mir?Nlog-Konsole Ziel funktioniert nicht Mono?

-Code

class Program 
{ 
    private static Logger logger = LogManager.GetCurrentClassLogger(); 
    static void Main(string[] args) 
    { 
     Type t = Type.GetType("Mono.Runtime"); 
     if (t != null) 
      Console.WriteLine("You are running with the Mono VM"); 
     else 
      Console.WriteLine("You are running something else"); 

     Console.WriteLine("Lets go Mono"); 
     logger.Trace("Sample trace message"); 
     logger.Debug("Sample debug message"); 
     logger.Info("Sample informational message"); 
     logger.Warn("Sample warning message"); 
     logger.Error("Sample error message"); 
     logger.Fatal("Sample fatal error message"); 
    } 
} 

Config

<?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 async="true"> 
    <target name="console" xsi:type="Console"/> 
    </targets> 

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

Nlog Paket

<package id="NLog" version="4.3.10" targetFramework="net452" /> 

Antwort

3

Sie Code und Config sieht va Deckel.

Es liegt ein Problem mit dem Konsolenziel unter Mono mit NLog 4.3.10, which will be fixed in 4.3.11 vor. Die Erkennung, ob die Konsole verfügbar ist nicht richtig funktioniert als Environment.UserInteractive funktioniert nicht auf Mono

Vorerst setzen detectConsoleAvailable="false" für Mono, so:

<target name="console" xsi:type="Console" detectConsoleAvailable="false"/> 
+1

Werke wie jetzt erwartet. Ungefähr um mein erstes Mono-Projekt zu starten - froh, nlog verfügbar zu haben, danke – pogorman

Verwandte Themen