c# – Log4net以编程方式配置adoAppender

我需要在现有的log4net配置中添加一个ado appender.

我需要通过代码添加它.但是我坚持添加常见的字符串参数,如消息,因为我无法正确定义布局属性:在xml配置中,我们使用PatternLayout,但是通过代码PatternLayout不是IRowLayout所以我有以下代码错误

public static void AddStringParameterToAppender(this log4net.Appender.adonetappender appender,string paramName,int size,string conversionPattern)
    {
        log4net.Appender.adonetappenderParameter param = new log4net.Appender.adonetappenderParameter();
        param.ParameterName = paramName;
        param.DbType = System.Data.DbType.String;
        param.Size = size;
        param.Layout = new log4net.Layout.PatternLayout(conversionPattern);
        appender.AddParameter(param);
    }

有人知道如何在代码添加字符串参数,类似于以下xml示例:

<parameter>
    <parameterName value="@message" />
    <dbType value="String" />
    <size value="4000" />
    <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%message" />
    </layout>
</parameter>

解决方法

我终于找到了如何在IRawLayout中转换PatternLayout.

为此,您必须使用log4net.Layout.Layout2RawLayoutAdapter:

public static void AddStringParameterToAppender(this log4net.Appender.adonetappender appender,string conversionPattern)
    {
        log4net.Appender.adonetappenderParameter param = new log4net.Appender.adonetappenderParameter();
        param.ParameterName = paramName;
        param.DbType = System.Data.DbType.String;
        param.Size = size;
        param.Layout = new log4net.Layout.Layout2RawLayoutAdapter(new log4net.Layout.PatternLayout(conversionPattern));
        appender.AddParameter(param);
    }

相关文章

在要实现单例模式的类当中添加如下代码:实例化的时候:frmC...
1、如果制作圆角窗体,窗体先继承DOTNETBAR的:public parti...
根据网上资料,自己很粗略的实现了一个winform搜索提示,但是...
近期在做DSOFramer这个控件,打算自己弄一个自定义控件来封装...
今天玩了一把WMI,查询了一下电脑的硬件信息,感觉很多代码都...
最近在研究WinWordControl这个控件,因为上级要求在系统里,...