2016-06-20 13 views
0

をファイルに書いていないロギング私は正常に動作し、次のサンプルコードがあります:私は1つのlogger.Writeの呼び出しを変更した場合、しかし、統一が

public static void Main() 
{ 
    var traceListener = new FlatFileTraceListener("unifylogging.log", 
     "--------------------", 
     "-----------------------------"); 

    var config = new LoggingConfiguration(); 
    config.AddLogSource("My Log Source", SourceLevels.All, true).AddTraceListener(traceListener); 

    var logger = new LogWriter(config); 

    logger.Write("This is a test"); 
} 

はまっすぐ、それは何も書き込まないマニュアルから引か:

logger.Write("Log entry with a category, priority, event ID,severity, and title.", 
    "General", 
    8, 
    9003, 
    TraceEventType.Warning, 
    "Logging Block Examples"); 
Write方法の他のオーバーロードの一部を含めて私も ConsoleTraceListenerでこれを試してみました、としている

  • logger.Write("Hello from unify", "Cat1");
  • logger.Write("Hello from unify", new[] { "Cat1" });

Write(string)でのみ動作1。

NB提案重複ワークフロー財団に関してであるとSystem.Diagnostics.Traceトレース程度のようです。これはUnify Loggingに関するものです。

+0

バッファに座っているだけですか? Trace.Flush? – Mick

+0

TraceEventが呼び出されても[トレースファイルが作成されていませんか?](http://stackoverflow.com/questions/14502960/trace-file-isnt-being-created-even-though-traceevent-is- ) – Mick

+0

@Mick write文の後ろに 'traceListener.Flush();'を追加してみました。 – BanksySan

答えて

0

奇妙な名前が付けられています。 nameパラメータ.AddLogSource(string name)の方法実際にはは、この設定で収集されるカテゴリを定義します。したがって

、そのようにログソースと一致するようにカテゴリを変更することによって:

public static void Main() 
{ 
    var traceListener = new ConsoleTraceListener(); 

    var config = new LoggingConfiguration(); 

    config.AddLogSource("My Log Source", SourceLevels.All, true).AddTraceListener(traceListener); 

    var logger = new LogWriter(config); 

    logger.Write("This is a log.", "My Log Source"); 
} 

が期待されるログを演出します。

関連する問題