不同的 NLog 实例,以便在不同的配置文件中分离 NLog 配置
Different NLog Instance In Order to Separate NLog configuration in different config files
目前,如果我将 LogManager.Configuration 指向不同的配置文件,我将面临 NLog.Configuration 覆盖问题。
是否可以在同一项目中创建多个 NLog 实例以防止共享相同的实例LogManager.Configuration?
类似于:
FruitType class 有自己的 NLog 实例,它的 NLog.LogManager.Configuration 是从默认 nlog.config.
读取的
然后,我想将 sub-class 配置为如下内容:
Apple class 实例有自己的 NLog 实例和 Apple class NLog。LogManager.Configuration 从 AppleNLog.config 而不是 nlog.config 读取。
然后是新水果
Orange class 实例有自己的 NLog 实例和 Orange class 实例
NLog.LogManager.Configuration 是从 OrangeNLog.config 而不是 nlog.config.
读取的
我想这样做的原因是将 nlog 规则分离到不同的配置文件中,而不是默认 nlog.config 来微管理 nlog 配置。
有两种方法可以实现:
一个。创建独立的生活 LogFactory
对象并分离配置。
例如
public static class MyLogManager
{
static public NLog.LogFactory Factory1 = new LogFactory(new XmlLoggingConfiguration("nlogconfig1.xml"));
static public NLog.LogFactory Factory2 = new LogFactory(new XmlLoggingConfiguration("nlogconfig2.xml"));
}
用法:
var logger1 = MyLogManager.Factory1.GetCurrentClassLogger();
//or
var logger2 = MyLogManager.Factory2.GetCurrentClassLogger();
b。分离较少,但仍然是模块化的配置文件,使用 <include>
例如nlog.config
<nlog>
...
<include file="${basedir}/nlog1.config"/>
<include file="${basedir}/nlog2.config"/>
...
</nlog>
nlog1.config 和 nlog2.config 包含常规的 <targets>
和 <rules>
。但要注意目标的潜在名称冲突。
目前,如果我将 LogManager.Configuration 指向不同的配置文件,我将面临 NLog.Configuration 覆盖问题。
是否可以在同一项目中创建多个 NLog 实例以防止共享相同的实例LogManager.Configuration?
类似于:
FruitType class 有自己的 NLog 实例,它的 NLog.LogManager.Configuration 是从默认 nlog.config.
读取的然后,我想将 sub-class 配置为如下内容:
Apple class 实例有自己的 NLog 实例和 Apple class NLog。LogManager.Configuration 从 AppleNLog.config 而不是 nlog.config 读取。
然后是新水果
Orange class 实例有自己的 NLog 实例和 Orange class 实例 NLog.LogManager.Configuration 是从 OrangeNLog.config 而不是 nlog.config.
读取的我想这样做的原因是将 nlog 规则分离到不同的配置文件中,而不是默认 nlog.config 来微管理 nlog 配置。
有两种方法可以实现:
一个。创建独立的生活 LogFactory
对象并分离配置。
例如
public static class MyLogManager
{
static public NLog.LogFactory Factory1 = new LogFactory(new XmlLoggingConfiguration("nlogconfig1.xml"));
static public NLog.LogFactory Factory2 = new LogFactory(new XmlLoggingConfiguration("nlogconfig2.xml"));
}
用法:
var logger1 = MyLogManager.Factory1.GetCurrentClassLogger();
//or
var logger2 = MyLogManager.Factory2.GetCurrentClassLogger();
b。分离较少,但仍然是模块化的配置文件,使用 <include>
例如nlog.config
<nlog>
...
<include file="${basedir}/nlog1.config"/>
<include file="${basedir}/nlog2.config"/>
...
</nlog>
nlog1.config 和 nlog2.config 包含常规的 <targets>
和 <rules>
。但要注意目标的潜在名称冲突。