我想为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>
不幸的是,这是不可能的,因为
.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