统一记录而不写入文件

时间:2016-06-20 21:55:35

标签: .net enterprise-library

我有以下示例代码可以正常工作:

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调用更改为直接从手册中删除,则不会写任何内容:

logger.Write("Log entry with a category, priority, event ID,severity, and title.",
    "General",
    8,
    9003,
    TraceEventType.Warning,
    "Logging Block Examples");

我还尝试使用ConsoleTraceListener,以及Write方法的其他一些重载,包括:

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

唯一有效的是Write(string)

  

NB 建议的重复内容与Workflow Foundation有关,似乎与System.Diagnostics.Trace跟踪有关。这是关于统一记录。

1 个答案:

答案 0 :(得分: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");
}

将产生预期的日志。