加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 18:04:12 所属栏目:百科 来源:网络整理
导读:我需要在现有的log4net配置中添加一个ado appender. 我需要通过代码添加它.但是我坚持添加常见的字符串参数,如消息,因为我无法正确定义布局属性:在xml配置中,我们使用PatternLayout,但是通过代码PatternLayout不是IRowLayout所以我有以下代码的错误: publi
我需要在现有的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);
    }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读