【发布时间】:2019-04-11 15:42:45
【问题描述】:
我正在尝试更改应用程序,以便当它创建模块的实例(在另一个程序集中定义的类)时,它可以向模块提供必要的信息,以便它可以根据配置创建自己的记录器加载它的服务应用程序。
当我第一次开始研究这个时,对我来说最合乎逻辑的解决方案是创建一个带有自定义参数的日志配置文件,该参数用于确定文件名。
<variable name="module" value="Service"/>
<targets>
<target name="logFile" xsi:type="File" fileName="${basedir}Logs/${var:module}.txt"
layout="${time} ${uppercase:${level}} ${var:module} ${logger} ${message}" />
</targets>
然后我存储 LoggingConfiguration,因此每次加载模块时,我都会根据配置创建一个新的 LogFactory,更改自定义变量值,并将其作为对模块的依赖项注入,以便它用于创建自己的记录器.
我一直遇到的问题,即使我编写了一个复杂的方法来尝试克隆 LoggingConfiguration,它是否总是会导致所有内容(包括服务)记录到最后创建的 LogFactory 的规范。
我觉得我遗漏了一些东西,并且真的可以使用一些帮助来弄清楚如何使这个解决方案发挥作用,或者提供任何建议来更好地了解如何实现每个模块的唯一日志文件的相同目标。
【问题讨论】: