按配置转换log4net级别

我们有一个旧的日志记录数据库,它记录两种类型的事件 .

  • 错误

  • 事件

我们已经将log4net改装到了应用程序,我们正在使用AdoNetAppender来登录这个旧数据库 . 用于记录事件的存储过程采用带有一个名为@TypeID的参数的存储过程 . 目前我们已经配置了这样的参数:

<parameter>
    <parameterName value="@TypeID" />
    <dbType value="Int32" />
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="2" />
    </layout>
  </parameter>

这会将所有事件记录为事件(类型2),而不管事件级别(错误或其他) . 如何更改配置,以便所有出现的log4net ERROR或更高版本都将@TypeID参数设置为1?

问另一种方式:

是否可以在conversionPattern的值中使用条件逻辑?

回答(1)

2 years ago

你可以写一个 PatternLayoutConverter 这样做 . 我发布了一个sample,可以很容易地修改,根据您的要求转换日志级别 .