如何用NLog将Logger名称输出至CSV(Excel)文件?
解决NLog CSV输出中Logger名称为空的问题及相关疑问解答
1. GetLogger传入的名称对应的布局字段
你遇到的name字段为空的问题,是因为你用了${name}渲染器——这个其实是NLog Target的名称(也就是你配置里的excelfile),而不是通过GetLogger()指定的Logger名称。
正确对应Logger名称的渲染器是${logger},把CSV布局里的name列修改成如下配置即可:
<column name="name" layout="${logger}"/>
修改后你的CSV输出就会显示Database、Thermal这些你指定的Logger名称了。
2. 查询CSV布局的所有可选参数
CSV Layout支持使用NLog的所有标准布局渲染器,同时自身也有专属配置选项,查询方式如下:
- 所有标准布局渲染器(比如
${longdate}、${level}、${exception}、${machinename}等)都可以用于CsvLayout的列,每个渲染器的用法和参数都能在NLog官方文档的布局渲染器列表中找到详细说明。 - CsvLayout自身的配置参数(如
delimiter分隔符、quoting引号规则、quoteChar引号字符等),可以查看NLog官方文档中CsvLayout的专属章节,了解如何控制CSV文件的格式规范。 - 你也可以直接查看NLog源码里的
CsvLayout类定义,直观看到所有可配置的属性和默认值。
3. NLog结合CSV使用的优质教程
- 官方文档的CsvLayout章节是最权威的入门资源,里面涵盖了从基础列配置到归档设置、异常记录、自定义格式等全场景的示例,能快速掌握核心用法。
- NLog官方GitHub仓库的示例项目里,有很多针对CSV输出的实际配置案例,包含不同业务场景下的最佳实践,可以直接参考复用。
- Stack Overflow社区里有大量关于NLog CSV配置的问答,遇到具体问题时搜索相关关键词(比如"NLog CsvLayout logger name"、"NLog CSV archive"),能找到很多前辈的解决方案和经验总结。
内容的提问来源于stack exchange,提问作者Dave
相关产品推荐
相关产品推荐

