【问题标题】:Log to different files with NLog and configure it with NLog Config XML使用 NLog 记录到不同的文件并使用 NLog Config XML 对其进行配置
【发布时间】:2015-02-21 10:56:07
【问题描述】:

出于某些业务目的,我必须创建不同的日志文件并将它们写入不同的文件。 [1 到 1000 动态变化]。这可能很疯狂,但这正是企业想要的。

我能够以编程方式使用 NLog 对其进行管理:我以编程方式为不同的日志文件创建不同的目标,并为每个日志文件创建命名记录器。

问题是现在我无法在外部配置 NLog:假设我将更改日志文件布局。 [现在我应该从代码中完成] 我应该创建自己不想要的配置文件。

我尝试编写使用 NConfig 文件变量定义,但 NLog 不允许从代码中访问变量定义。

是否有可能[任何技巧]使用 NLog 配置文件创建具有不同文件的记录器,而不将所有日志目标写入 NLog 文件? [我无法将所有记录器添加到 Nlog 配置中,因为我不知道我将创建多少个,但我有一个创建它们的模式]

我的日志文件创建模式:

我的应用中有不同的频道:对于每个请求,我都会创建一个具有自己频道的新频道:

  • Channel1.log Channel2.log Channel3.log .... ChannelN.log

【问题讨论】:

    标签: logging nlog


    【解决方案1】:

    您可以使用单个文件目标并将布局渲染器合并到其fileName 参数中。该目标将根据布局渲染器提供的值选择多个文件之一。

    <target xsi:type="File"
              layout="${message}"
              fileName="${baseDir}\Log\channel${channelId}.log"
              createDirs="true" />
    

    其中${channelId} 是布局渲染器,它为每个通道提供不同的值。这个值应该从请求的上下文中以某种方式获得。

    您可以查找现有的layout renderers 以查看其中是否符合您的需求或编写您自己的特定渲染器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-16
      相关资源
      最近更新 更多