c# - NLog 目标文件名

标签 c# nlog

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

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

使用 NLog 目标可以实现这一目标吗?

最佳答案

您不限于在配置文件中注册多个记录器;您可以使用 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;   

关于c# - NLog 目标文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27297813/

相关文章:

c# - 如何将文件拖放到 DataGridView 并将文件名记录到单元格 C# 中?

visual-studio-2012 - 保留 namespace 前缀的转换

c# - 使用 C# 将 AppDomain 映射到一个友好的名称

docker - NLog配置从docker run参数设置连接字符串

c# - 每个 Http 请求的分散式 NLog 目标

c# - 为什么 ResourceManager.GetResourceSet 在构建后的第一个请求中返回 null? (C#)

c# - 在 C# 中使用反射在运行时加载类型

c# - ASP.Net Core 2.2 升级 - 默认路由重定向问题

c# - ASP 点网 : How to repeat HTML parts with minor differences on a page?

nlog - 如何告诉 NLog 记录异常?