Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- logback dbappender performance
- <configuration debug="true" scan="true">
- <property resource="log.properties" />
- <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
- <!-- encoders are assigned the type ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
- <encoder>
- <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
- </encoder>
- </appender>
- <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <file>${log.file.dir}/${project.artifactId}.log</file>
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <!-- daily rollover -->
- <fileNamePattern>${project.artifactId}.%d{yyyy-MM-dd}.log</fileNamePattern>
- <!-- keep 30 days' worth of history -->
- <maxHistory>${log.file.rolling.history.days}</maxHistory>
- </rollingPolicy>
- <encoder>
- <pattern>%-4relative [%thread] %-5level %logger{35} - %msg%n</pattern>
- </encoder>
- </appender>
- <appender name="DB" class="ch.qos.logback.classic.db.DBAppender">
- <connectionSource class="ch.qos.logback.core.db.DataSourceConnectionSource">
- <dataSource class="com.mchange.v2.c3p0.ComboPooledDataSource">
- <driverClass>${log.db.driver}</driverClass>
- <jdbcUrl>jdbc:sybase:Tds:${log.db.server}:${log.db.port}/${log.db.name}</jdbcUrl>
- <serverName>${log.db.server}</serverName>
- <databaseName>${log.db.name}</databaseName>
- <user>${log.db.user}</user>
- <password>${log.db.password}</password>
- </dataSource>
- </connectionSource>
- </appender>
- <root level="INFO">
- <appender-ref ref="CONSOLE" />
- <appender-ref ref="FILE" />
- </root>
- </configuration>
- logback.xml -
- <appender name="DB" class="ch.qos.logback.classic.db.DBAppender">
- <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
- <evaluator>
- <expression>if(logger.startsWith("com.forum.sub")&&level==ERROR)
- return true;
- return false;
- </expression>
- </evaluator>
- <OnMismatch>DENY</OnMismatch>
- <OnMatch>ACCEPT</OnMatch>
- </filter>
- <connectionSource class="ch.qos.logback.core.db.DataSourceConnectionSource">
- <dataSource class="com.mchange.v2.c3p0.ComboPooledDataSource">
- <driverClass>oracle.jdbc.driver.OracleDriver</driverClass>
- <jdbcUrl>jdbc:Oracle//127.0.0.1:1521/orcl</jdbcUrl>
- <user>SQA</user>
- <password>SQA</password>
- </dataSource>
- </connectionSource>
- </appender>
- Error: -
- ch.qos.logback.core.db.DataSourceConnectionSource@35bb0f - Could not get a connection to discover the dialect to use. java.sql.SQLException: Connections could not be acquired from the underlying database!
- at java.sql.SQLException: Connections could not be acquired from the underlying database!
- at at com.mchange.v2.sql.SqlUtils.toSQLException(SqlUtils.java:106)
- at at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutPooledConnection(C3P0PooledConnectionPool.java:529)
- at at com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource.getConnection(AbstractPoolBackedDataSource.java:128)
- at at ch.qos.logback.core.db.DataSourceConnectionSource.getConnection(DataSourceConnectionSource.java:72)
- at at ch.qos.logback.core.db.DataSourceConnectionSource.start(DataSourceConnectionSource.java:46)
- at at ch.qos.logback.core.joran.action.NestedComplexPropertyIA.end(NestedComplexPropertyIA.java:167)
- at at ch.qos.logback.core.joran.spi.Interpreter.callEndAction(Interpreter.java:315)
- at at ch.qos.logback.core.joran.spi.Interpreter.endElement(Interpreter.java:194)
- at at ch.qos.logback.core.joran.spi.Interpreter.endElement(Interpreter.java:180)
- at at ch.qos.logback.core.joran.spi.EventPlayer.play(EventPlayer.java:52)
- at at ch.qos.logback.core.joran.spi.Interpreter.play(Interpreter.java:332)
- at at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:126)
- at at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:93)
- at at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:52)
- at at ch.qos.logback.classic.util.ContextInitializer.configureByResource(ContextInitializer.java:77)
- at at ch.qos.logback.classic.util.ContextInitializer.autoConfig(ContextInitializer.java:150)
- at at org.slf4j.impl.StaticLoggerBinder.init(StaticLoggerBinder.java:85)
- at at org.slf4j.impl.StaticLoggerBinder.<clinit>(StaticLoggerBinder.java:55)
- at at org.slf4j.LoggerFactory.bind(LoggerFactory.java:121)
- at at org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:111)
- at at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:268)
- at at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:241)
- at at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:254)
- at at com.forum.sub.LogbackTest.<clinit>(LogbackTest.java:16)
- Caused by: com.mchange.v2.resourcepool.CannotAcquireResourceException: A ResourcePool could not acquire a resource from its primary factory or source.
- at at com.mchange.v2.resourcepool.BasicResourcePool.awaitAvailable(BasicResourcePool.java:1319)
- at at com.mchange.v2.resourcepool.BasicResourcePool.prelimCheckoutResource(BasicResourcePool.java:557)
- at at com.mchange.v2.resourcepool.BasicResourcePool.checkoutResource(BasicResourcePool.java:477)
- at at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutPooledConnection(C3P0PooledConnectionPool.java:525)
- at ... 22 common frames omitted
- WARN in ch.qos.logback.core.db.DataSourceConnectionSource@35bb0f - Connection does not support GetGeneratedKey method and could not discover the dialect.
- 21:16:56,572 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@52:14 - RuntimeException in Action for tag [appender] java.lang.IllegalStateException: DBAppender cannot function if the JDBC driver does not support getGeneratedKeys method *and* without a specific SQL dialect
- at java.lang.IllegalStateException: DBAppender cannot function if the JDBC driver does not support getGeneratedKeys method *and* without a specific SQL dialect
- at at ch.qos.logback.core.db.DBAppenderBase.start(DBAppenderBase.java:62)
- at at ch.qos.logback.classic.db.DBAppender.start(DBAppender.java:96)
- at at ch.qos.logback.core.joran.action.AppenderAction.end(AppenderAction.java:96)
- at at ch.qos.logback.core.joran.spi.Interpreter.callEndAction(Interpreter.java:315)
- at at ch.qos.logback.core.joran.spi.Interpreter.endElement(Interpreter.java:194)
- at at ch.qos.logback.core.joran.spi.Interpreter.endElement(Interpreter.java:180)
- at at ch.qos.logback.core.joran.spi.EventPlayer.play(EventPlayer.java:52)
- at at ch.qos.logback.core.joran.spi.Interpreter.play(Interpreter.java:332)
- at at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:126)
- at at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:93)
- at at ch.qos.logback.core.joran.GenericConfigurator.doConfigure(GenericConfigurator.java:52)
- at at ch.qos.logback.classic.util.ContextInitializer.configureByResource(ContextInitializer.java:77)
- at at ch.qos.logback.classic.util.ContextInitializer.autoConfig(ContextInitializer.java:150)
- at at org.slf4j.impl.StaticLoggerBinder.init(StaticLoggerBinder.java:85)
- at at org.slf4j.impl.StaticLoggerBinder.<clinit>(StaticLoggerBinder.java:55)
- at at org.slf4j.LoggerFactory.bind(LoggerFactory.java:121)
- at at org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:111)
- at at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:268)
- at at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:241)
- at at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:254)
- at at com.forum.sub.LogbackTest.<clinit>(LogbackTest.java:16)
Add Comment
Please, Sign In to add comment