2016-10-13 10 views
1

私は非常にシンプルなコンソールアプリを持っています。コンソールターゲットを使ってNlogを追加しましたが、WindowsとUbuntuのモノラルで動作させることはできません。私はファイルのターゲットを試して、それは動作します。 私は何が欠けていますか?Nlogコンソールのターゲットが動作していないモノですか?

コード

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"); 
    } 
} 

コンフィグ

<?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パッケージ

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

答えて

3

あなたのコードと設定は、VAを探します蓋。

NLog 4.3.10、which will be fixed in 4.3.11のMonoでコンソールターゲットに問題があります。コンソールが利用可能な場合Environment.UserInteractiveは今のモノ

に動作していないと正しく動作しません検出ので、モノのためdetectConsoleAvailable="false"を設定します。

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

作品になりました予想通りに。私の最初のモノプロジェクトを開始する - nlogを利用できるとうれしい – pogorman

関連する問題