IBM Web Sphere 上带有 JNDI 数据源的 Log4j2 JDBC Appender 给出错误无可用连接

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

我正在尝试使用 Log4J2 JDBC appender 将日志记录插入 Oracle 数据库。我的 spring boot 应用程序 EAR 已部署到 IBM Web Sphere。我正在使用 Web Sphere 中定义的 JNDI 数据资源。我的 log4j2 XML 配置是

<JDBC name="databaseAppender" tableName="tphms_dba.WAS_APP_LOG">
                   <DataSource jndiName="jdbc/APPLOGDS" />
        
       
<Column name="LOG_DATE" isEventTimestamp="true" />
     
<Column name="LOG_LEVEL" pattern="%level" />

</JDBC>

我得到的错误是

org.apache.logging.log4j.core.appender.AppenderLoggingException:无法写入日志事件; JDBC 管理器未连接到数据库

[06/04/23 16:57:03:753 EDT] 00000057 SystemOut O 2023-04-06 16:57:03,752 server.startup : 1 错误无法写入数据库 [JdbcManager{name=databaseAppender, bufferSize=0 , tableName=WAS_APP_LOG, columnConfigs=[{ name=LOG_DATE, layout=null, literal=null, timestamp=true }, { name=LOG_LEVEL, layout=%level, literal=null, timestamp=false }], columnMappings=[] }] 用于附加程序 [databaseAppender]。 org.apache.logging.log4j.core.appender.AppenderLoggingException:无法写入日志事件; JDBC 管理器未连接到数据库,running=true, [columnConfigs=[{ name=LOG_DATE, layout=null, literal=null, timestamp=true }, { name=LOG_LEVEL, layout=%level, literal=null, timestamp= false }], sqlStatement=insert into tphms_dba.WAS_APP_LOG (LOG_DATE,LOG_LEVEL) 值 (?,?), factoryData=FactoryData [connectionSource=dataSource{ name=jdbc/APPLOGDS, value=com.ibm.ws.rsadapter.jdbc.WSJdbcDataSource @58f6b427 }, tableName=WAS_APP_LOG, columnConfigs=[{ name=LOG_DATE, layout=null, literal=null, timestamp=true }, { name=LOG_LEVEL, layout=%level, literal=null, timestamp=false }], columnMappings =[], immediateFail=false, retry=true, reconnectIntervalMillis=5000, truncateStrings=true], connection=null, statement=null, reconnector=Reconnector [latch=java.util.concurrent.CountDownLatch@baa822a2[计数=0], shutdown=false], isBatchSupported=true, columnMetaData=null])

jdbc websphere log4j2 jndi
© www.soinside.com 2019 - 2024. All rights reserved.