log4j2 使用属性格式配置 ColumnMapping 类型

问题描述 投票:0回答:1

我想为columnMapping提供类型参数,但类型参数已被用来指定我正在使用columnMapping。

目前我的配置是

appender.message_appender.columnMappings[1].type = ColumnMapping
appender.message_appender.columnMappings[1].name = journal_id
appender.message_appender.columnMappings[1].type = java.lang.Integer # can't have two type parameters

我不明白如何将columnMappings[1]的类型设置为int。

在xml中可以这样实现

    <Jdbc name="databaseAppender" tableName="dsLogEntry" ignoreExceptions="false">
      <DataSource jndiName="java:/comp/env/jdbc/TestDataSourceAppender" />
      <ColumnMapping name="journal_id" type="java.lang.Integer"/>
      <MessageLayout />
    </Jdbc>
jdbc properties log4j2
1个回答
1
投票

不幸的是,这是不可能的,因为

.type
后缀已用于指示组件的 插件类型(“ColumnMapping”)。

为了能够使用属性配置,必须重命名

type
ColumnMapping
属性。您应该考虑提交错误报告

总结:您可以使用更常用的 XML、JSON 或 YAML 格式在

type
上定义
ColumnMapping
属性。严格的 XML 和属性格式不允许这样做。

编辑:自版本2.21.0(参见发行说明)以来,您可以使用

columnType
而不是
type
来指定列的SQL类型:

appender.message_appender.columnMappings[1].type = ColumnMapping
appender.message_appender.columnMappings[1].name = journal_id
appender.message_appender.columnMappings[1].columnType = java.lang.Integer
© www.soinside.com 2019 - 2024. All rights reserved.