【问题标题】:NLog Target File NamesNLog 目标文件名
【发布时间】:2014-12-04 15:31:05
【问题描述】:

我正在开发使用 NLog 来跟踪工作流执行的应用程序。每次执行都被指定一个“跟踪 id”(GUID),它被保留以将组成和发送的消息联系在一起。理想情况下,我们希望使用名称中的跟踪 ID 将每次执行记录到它自己的日志文件中。例如

日志\MyExecution_97301078-2119-48e9-876d-64002257b399.txt
日志\MyExecution_1e5b60d5-95b5-4fdc-94cc-886d379e2b13.txt
日志\MyExecution_07b427a9-106d-4865-a288-625e1cd56dd1.txt

这是否可以使用 NLog 目标来实现?

【问题讨论】:

  • 这可能会有所帮助.. stackoverflow.com/questions/20352325/…
  • 您好,此示例似乎为单独的日志文件调用了明确的名称,我希望创建名称由唯一 ID 确定的日志文件,在编译时未知。
  • 您如何跟踪 GUID?您是否在每条日志消息中明确包含它?您是否将其设置在 NLOG 上下文对象之一中?您是否使用内置的 .NET System.Diagnostics.Trace.CorrelationManager.ActivityId?

标签: c# nlog


【解决方案1】:

您不限于在配置文件中注册多个记录器;您可以使用Configuration API。例如(取自链接,您可能需要根据您的情况进行编辑)

// create configuration object 
var config = new LoggingConfiguration();

// create a target
var fileTarget = new FileTarget();
config.AddTarget("SomeName", fileTarget);

// set properties
fileTarget.FileName = "something/guid.txt";

// activate the configuration
LogManager.Configuration = config;   

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-24
    • 1970-01-01
    相关资源
    最近更新 更多