sup*_*314 6 c# configuration logging config nlog
目前,如果我将 LogManager.Configuration 指向不同的配置文件,我将面临 NLog.Configuration 覆盖问题。
是否可以在同一个项目中创建多个 NLog 实例以防止共享相同的 LogManager.Configuration?
就像是 :
FruitType 类有自己的 NLog 实例,它的 NLog.LogManager.Configuration 从默认的 nlog.config 中读取。
然后,我想将子类配置为如下所示:
Apple 类实例有自己的 NLog 实例,Apple 类 NLog.LogManager.Configuration 从 AppleNLog.config 而不是 nlog.config 读取。
然后是新水果
Orange类实例有自己的NLog实例,Orange类实例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"));
}
Run Code Online (Sandbox Code Playgroud)
用法:
var logger1 = MyLogManager.Factory1.GetCurrentClassLogger();
//or
var logger2 = MyLogManager.Factory2.GetCurrentClassLogger();
Run Code Online (Sandbox Code Playgroud)
湾 较少分离但仍然模块化的配置文件,使用<include>
例如 nlog.config
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"));
}
Run Code Online (Sandbox Code Playgroud)
nlog1.config 和 nlog2.config 包含常规<targets>和<rules>. 但请注意目标的潜在名称冲突。
| 归档时间: |
|
| 查看次数: |
1771 次 |
| 最近记录: |