Playframework 如何记录播放框架启动错误

Playframework 如何记录播放框架启动错误,playframework,playframework-2.4,hikaricp,Playframework,Playframework 2.4,Hikaricp,数据库连接错误未记录在生产模式下的播放中 在下面的stacktrace中,只有第一行:[info]应用程序-为数据源“default”创建池转到application.log。只有在play.core.server.RealServerProcess#exit 我可以使用,但它不能在应用程序onStart中完成,因为以前发生过数据库连接,所以可能我需要编写一个模块 [info] application - Creating Pool for datasource 'default' Oops,

数据库连接错误未记录在生产模式下的播放中

在下面的stacktrace中,只有第一行:[info]应用程序-为数据源“default”创建池转到application.log。只有在
play.core.server.RealServerProcess#exit

我可以使用,但它不能在应用程序onStart中完成,因为以前发生过数据库连接,所以可能我需要编写一个模块

[info] application - Creating Pool for datasource 'default'
Oops, cannot start the server.
Configuration error: Configuration error[Cannot connect to database [default]]
    at play.api.Configuration$.configError(Configuration.scala:178)
    at play.api.Configuration.reportError(Configuration.scala:829)
    at play.api.db.DefaultDBApi$$anonfun$connect$1.apply(DefaultDBApi.scala:48)
    at play.api.db.DefaultDBApi$$anonfun$connect$1.apply(DefaultDBApi.scala:42)
    at scala.collection.immutable.List.foreach(List.scala:381)
    at play.api.db.DefaultDBApi.connect(DefaultDBApi.scala:42)
    at play.api.db.DBApiProvider.get$lzycompute(DBModule.scala:72)
    at play.api.db.DBApiProvider.get(DBModule.scala:62)
    at play.api.db.DBApiProvider.get(DBModule.scala:58)
    at com.google.inject.internal.ProviderInternalFactory.provision(ProviderInternalFactory.java:81)
    at com.google.inject.internal.BoundProviderFactory.provision(BoundProviderFactory.java:72)
    at com.google.inject.internal.ProviderInternalFactory.circularGet(ProviderInternalFactory.java:61)
    at com.google.inject.internal.BoundProviderFactory.get(BoundProviderFactory.java:62)
    at com.google.inject.internal.SingleFieldInjector.inject(SingleFieldInjector.java:54)
    at com.google.inject.internal.MembersInjectorImpl.injectMembers(MembersInjectorImpl.java:132)
    at com.google.inject.internal.MembersInjectorImpl$1.call(MembersInjectorImpl.java:93)
    at com.google.inject.internal.MembersInjectorImpl$1.call(MembersInjectorImpl.java:80)
    at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1103)
    at com.google.inject.internal.MembersInjectorImpl.injectAndNotify(MembersInjectorImpl.java:80)
    at com.google.inject.internal.MembersInjectorImpl.injectMembers(MembersInjectorImpl.java:62)
    at com.google.inject.internal.InjectorImpl.injectMembers(InjectorImpl.java:984)
    at com.google.inject.util.Providers$GuicifiedProviderWithDependencies.initialize(Providers.java:149)
    at com.google.inject.util.Providers$GuicifiedProviderWithDependencies$$FastClassByGuice$$2a7177aa.invoke(<generated>)
    at com.google.inject.internal.cglib.reflect.$FastMethod.invoke(FastMethod.java:53)
    at com.google.inject.internal.SingleMethodInjector$1.invoke(SingleMethodInjector.java:57)
    at com.google.inject.internal.SingleMethodInjector.inject(SingleMethodInjector.java:91)
    at com.google.inject.internal.MembersInjectorImpl.injectMembers(MembersInjectorImpl.java:132)
    at com.google.inject.internal.MembersInjectorImpl$1.call(MembersInjectorImpl.java:93)
    at com.google.inject.internal.MembersInjectorImpl$1.call(MembersInjectorImpl.java:80)
    at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1092)
    at com.google.inject.internal.MembersInjectorImpl.injectAndNotify(MembersInjectorImpl.java:80)
    at com.google.inject.internal.Initializer$InjectableReference.get(Initializer.java:174)
    at com.google.inject.internal.Initializer.injectAll(Initializer.java:108)
    at com.google.inject.internal.InternalInjectorCreator.injectDynamically(InternalInjectorCreator.java:174)
    at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:110)
    at com.google.inject.Guice.createInjector(Guice.java:96)
    at com.google.inject.Guice.createInjector(Guice.java:73)
    at com.google.inject.Guice.createInjector(Guice.java:62)
    at play.api.inject.guice.GuiceBuilder.injector(GuiceInjectorBuilder.scala:126)
    at play.api.inject.guice.GuiceApplicationBuilder.build(GuiceApplicationBuilder.scala:93)
    at play.api.inject.guice.GuiceApplicationLoader.load(GuiceApplicationLoader.scala:21)
    at play.core.server.ProdServerStart$.start(ProdServerStart.scala:52)
    at play.core.server.ProdServerStart$.main(ProdServerStart.scala:27)
    at play.core.server.ProdServerStart.main(ProdServerStart.scala)
Caused by: Configuration error: Configuration error[Exception during pool initialization]
    at play.api.Configuration$.configError(Configuration.scala:178)
    at play.api.PlayConfig.reportError(Configuration.scala:1048)
    at play.api.db.HikariCPConnectionPool.create(HikariCPModule.scala:69)
    at play.api.db.PooledDatabase.createDataSource(Databases.scala:199)
    at play.api.db.DefaultDatabase.dataSource$lzycompute(Databases.scala:124)
    at play.api.db.DefaultDatabase.dataSource(Databases.scala:122)
    at play.api.db.DefaultDatabase.getConnection(Databases.scala:143)
    at play.api.db.DefaultDatabase.getConnection(Databases.scala:139)
    at play.api.db.DefaultDBApi$$anonfun$connect$1.apply(DefaultDBApi.scala:44)
    ... 41 more
Caused by: com.zaxxer.hikari.pool.PoolInitializationException: Exception during pool initialization
    at com.zaxxer.hikari.pool.BaseHikariPool.initializeConnections(BaseHikariPool.java:542)
    at com.zaxxer.hikari.pool.BaseHikariPool.<init>(BaseHikariPool.java:171)
    at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:60)
    at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:48)
    at com.zaxxer.hikari.HikariDataSource.<init>(HikariDataSource.java:80)
    at play.api.db.HikariCPConnectionPool$$anonfun$1.apply(HikariCPModule.scala:58)
    at play.api.db.HikariCPConnectionPool$$anonfun$1.apply(HikariCPModule.scala:54)
    at scala.util.Try$.apply(Try.scala:192)
    at play.api.db.HikariCPConnectionPool.create(HikariCPModule.scala:54)
    ... 47 more
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up.
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:389)
    at com.mysql.jdbc.Util.getInstance(Util.java:372)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:958)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:937)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:926)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:872)
    at com.mysql.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:2149)
    at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2074)
    at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:794)
    at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:44)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:389)
    at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:399)
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:325)
    at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:92)
    at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:98)
    at com.zaxxer.hikari.pool.BaseHikariPool.addConnection(BaseHikariPool.java:438)
    at com.zaxxer.hikari.pool.BaseHikariPool.initializeConnections(BaseHikariPool.java:540)
    ... 55 more
Caused by: java.sql.SQLException: Access denied for user 'ilya-'@'localhost' (using password: YES)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:998)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3835)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3771)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:870)
    at com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1659)
    at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1206)
    at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2239)
    at com.mysql.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:2090)
    ... 69 more
[info]应用程序-为数据源“默认”创建池
哦,无法启动服务器。
配置错误:配置错误[无法连接到数据库[默认]]
at play.api.Configuration$.configError(Configuration.scala:178)
at play.api.Configuration.reportError(Configuration.scala:829)
at play.api.db.DefaultDBApi$$anonfun$connect$1.apply(DefaultDBApi.scala:48)
at play.api.db.DefaultDBApi$$anonfun$connect$1.apply(DefaultDBApi.scala:42)
位于scala.collection.immutable.List.foreach(List.scala:381)
at play.api.db.DefaultDBApi.connect(DefaultDBApi.scala:42)
at play.api.db.dbaprovider.get$lzycompute(DBModule.scala:72)
at play.api.db.dbaprovider.get(DBModule.scala:62)
at play.api.db.dbaprovider.get(DBModule.scala:58)
位于com.google.inject.internal.ProviderInternalFactory.provision(ProviderInternalFactory.java:81)
位于com.google.inject.internal.BoundProviderFactory.provision(BoundProviderFactory.java:72)
位于com.google.inject.internal.ProviderInternalFactory.CircularTarget(ProviderInternalFactory.java:61)
位于com.google.inject.internal.BoundProviderFactory.get(BoundProviderFactory.java:62)
位于com.google.inject.internal.SingleFieldInjector.inject(SingleFieldInjector.java:54)
在com.google.inject.internal.MembersInjectorImpl.injectMembers上(MembersInjectorImpl.java:132)
在com.google.inject.internal.MembersInjectorImpl$1.call(MembersInjectorImpl.java:93)上
在com.google.inject.internal.MembersInjectorImpl$1.call(MembersInjectorImpl.java:80)上
位于com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1103)
在com.google.inject.internal.MembersInjectorImpl.injectAndNotify(MembersInjectorImpl.java:80)
在com.google.inject.internal.MembersInjectorImpl.injectMembers上(MembersInjectorImpl.java:62)
位于com.google.inject.internal.InjectorImpl.injectMembers(InjectorImpl.java:984)
位于com.google.inject.util.Providers$GuicifiedProviderWithDependencies.initialize(Providers.java:149)
位于com.google.inject.util.Providers$GuicifiedProviderWithDependencies$$FastClassByGuice$$2a7177aa.invoke()
位于com.google.inject.internal.cglib.reflect.$FastMethod.invoke(FastMethod.java:53)
位于com.google.inject.internal.SingleMethodInjector$1.invoke(SingleMethodInjector.java:57)
位于com.google.inject.internal.SingleMethodInjector.inject(SingleMethodInjector.java:91)
在com.google.inject.internal.MembersInjectorImpl.injectMembers上(MembersInjectorImpl.java:132)
在com.google.inject.internal.MembersInjectorImpl$1.call(MembersInjectorImpl.java:93)上
在com.google.inject.internal.MembersInjectorImpl$1.call(MembersInjectorImpl.java:80)上
位于com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1092)
在com.google.inject.internal.MembersInjectorImpl.injectAndNotify(MembersInjectorImpl.java:80)
位于com.google.inject.internal.Initializer$InjectableReference.get(Initializer.java:174)
位于com.google.inject.internal.Initializer.injectAll(Initializer.java:108)
在com.google.inject.internal.InternalInjectorCreator.injectDynamicly上(InternalInjectorCreator.java:174)
在com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:110)上
位于com.google.inject.Guice.createInjector(Guice.java:96)
位于com.google.inject.Guice.createInjector(Guice.java:73)
位于com.google.inject.Guice.createInjector(Guice.java:62)
at play.api.inject.guice.GuiceBuilder.injector(GuiceInjectorBuilder.scala:126)
at play.api.inject.guice.GuiceApplicationBuilder.build(GuiceApplicationBuilder.scala:93)
at play.api.inject.guice.GuiceApplicationLoader.load(GuiceApplicationLoader.scala:21)
播放时.core.server.ProdServerStart$.start(ProdServerStart.scala:52)
在播放时.core.server.ProdServerStart$.main(ProdServerStart.scala:27)
播放时.core.server.ProdServerStart.main(ProdServerStart.scala)
原因:配置错误:配置错误[池初始化期间异常]
at play.api.Configuration$.configError(Configuration.scala:178)
at play.api.PlayConfig.reportError(Configuration.scala:1048)
at play.api.db.hikaricpcconnectionpool.create(HikariCPModule.scala:69)
at play.api.db.PooledDatabase.createDataSource(Databases.scala:199)
at play.api.db.DefaultDatabase.dataSource$lzycompute(Databases.scala:124)
atplay.api.db.DefaultDatabase.dataSource(Databases.scala:122)
at play.api.db.DefaultDatabase.getConnection(Databases.scala:143)
at play.api.db.DefaultDatabase.getConnection(Databases.scala:139)
at play.api.db.DefaultDBApi$$anonfun$connect$1.apply(DefaultDBApi.scala:44)
... 41多
原因:com.zaxxer.hikari.pool.PoolitizationException:池初始化期间发生异常
在com.zaxxer.hikari.pool.BaseHikariPool.initializeConnections上(BaseHikariPool.java:542)
在com.zaxxer.hikari.pool.BaseHikariPool.(BaseHikariPool.java:171)
在com.zaxxer.hikari.pool.HikariPool上。(HikariPool.java:60)
在com.zaxxer.hikari.pool.HikariPool.(HikariPool.java:48)
在com.zaxxer.hikari.HikariDataSource。(HikariDataSource.java:80)
at play.api.db.hikaricpcconnectionpool$$anonfun$1.apply(HikariCPModule.scala:58)
at play.api.db.hikaricpcconnectionpool$$anonfun$1.apply(HikariCPModule.scala:54)
在scala.util.Try$.apply(Try.scala:192)
at play.api.db.hikaricpcconnectionpool.create(HikariCPModule.scala:54)
... 47多
原因:com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:无法创建连接t
play.application.loader = "modules.LogSdtErrLoader"
package modules

import play.api.ApplicationLoader
import play.api.inject.guice.{GuiceApplicationBuilder, GuiceApplicationLoader}
import uk.org.lidalia.sysoutslf4j.context.SysOutOverSLF4J

class LogSdtErrLoader extends GuiceApplicationLoader {

  override final def builder(context: ApplicationLoader.Context): GuiceApplicationBuilder = {
    SysOutOverSLF4J.sendSystemOutAndErrToSLF4J()
    super.builder(context)
  }
}