我正在try 使用JDBC附加器为我的Spring Boot应用程序配置Log4j2,其中包含以下log4j2.xml个文件:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
    <Appenders>
        <JDBC name="DB" tableName="log">
            <PoolingDriver connectionString="url" userName="username" password="password"/>
            <Column name="COD_LOG_ID" literal="log0.nextval"/>
            <Column name="TIM_TIMESTAM" isEventTimestamp="true"/>
            <Column name="DES_LOGGER" pattern="%c"/>
            <Column name="COD_JLEVEL" pattern="%level"/>
            <Column name="DES_LMESSAGE" pattern="%m%n%ex{full}" isClob="true"/>
        </JDBC>

        <Async name="Async">
            <AppenderRef ref="DB"/>
        </Async>
    </Appenders>

    <Loggers>
        <Root level="INFO">
            <AppenderRef ref="Async"/>
        </Root>
    </Loggers>
</Configuration>

但是,try 运行该应用程序会产生以下错误:

2023-06-07 12:36:23,622 main ERROR No ConnectionSource provided: connectionSource
2023-06-07 12:36:23,628 main ERROR Could not create plugin of type class org.apache.logging.log4j.core.appender.db.jdbc.JdbcAppender for element JDBC org.apache.logging.log4j.core.config.ConfigurationException: Arguments given for element JDBC are invalid: field 'connectionSource' has invalid value 'null'
    at org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.injectFields(PluginBuilder.java:210)
    at org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.build(PluginBuilder.java:121)
    at org.apache.logging.log4j.core.config.AbstractConfiguration.createPluginObject(AbstractConfiguration.java:1120)
    at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:1045)
    at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:1037)
    at org.apache.logging.log4j.core.config.AbstractConfiguration.doConfigure(AbstractConfiguration.java:651)
    at org.apache.logging.log4j.core.config.AbstractConfiguration.initialize(AbstractConfiguration.java:247)
    at org.apache.logging.log4j.core.config.AbstractConfiguration.start(AbstractConfiguration.java:293)
    at org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:626)
    at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:699)
    at org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:716)
    at org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:270)
    at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:155)
    at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:47)
    at org.apache.logging.log4j.LogManager.getContext(LogManager.java:196)
    at org.apache.commons.logging.LogAdapter$Log4jLog.<clinit>(LogAdapter.java:155)
    at org.apache.commons.logging.LogAdapter$Log4jAdapter.createLog(LogAdapter.java:122)
    at org.apache.commons.logging.LogAdapter.createLog(LogAdapter.java:89)
    at org.apache.commons.logging.LogFactoryService.getInstance(LogFactoryService.java:46)
    at org.apache.commons.logging.LogFactoryService.getInstance(LogFactoryService.java:41)
    at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:655)
    at org.springframework.boot.SpringApplication.<clinit>(SpringApplication.java:196)
    at com.bbva.eysea.ganbaru.Application.main(Application.java:28)

DriverManager替换PoolingDriver是可行的,但根据documentation,我应该使用池连接,这在理论上是由PoolingDriver提供的.有什么提示吗?

推荐答案

log4j-core中没有分发PoolingDriver插件.

如果您使用的是Maven,则需要添加:

<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-jdbc-dbcp2</artifactId>
    <version>2.20.0</version>
    <scope>runtime</scope>
</dependency>

你的附属品.

Java相关问答推荐

错误:在Liferay7.4中找不到符号导入com.liferay.portal.kernel.uuid.PortalUUID;";

这是什么Java构造`(InputStream Is)->;()->;{}`

在Java 17中使用两个十进制数字分析时间时出错,但在Java 8中成功

使用用户引入的参数生成人员数组

无法播放音频:从资源加载库GStreamer-Lite失败

Java创建带有扩展通配符的抽象处理器

为什么这种递归会有这样的行为?

如何在Record Java中使用isRecord()和RecordComponent[]?

Java嵌套流查找任意值

为什么项目名称出现在我的GET请求中?

接受类及其接口的Java类型(矛盾)

如何在Spring Boot Auth服务器上正确配置CORS?

如何在特定关键字后提取与模式匹配的多个值?

org.springframework.web.HttpRequestMethodNotSupportedException:请求方法';帖子';不支持

如何以事务方式向ibmmq发送消息

Java中计算大n和k值模10^9+7的二项式系数的乘法公式输出错误值

人们在 IntelliJ 上将-Dhttp.proxyHost=your.proxy.net -Dhttp.proxyPort=8080放在哪里?

为什么 Rust 原生库在调用函数时会随机崩溃?

如何使 JavaFx 中的表视图响应式?

如何更改 JTree 的某些元素而不是整个树的文本 colored颜色 ?