在我的应用程序中,有一个logback实现,利用这种非常简单的xml配置:
#logback-mw.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false">
<appender name="DB"
class="com.sample.osgi.core.MyDBAppender">
<connectionSource
class="ch.qos.logback.core.db.DriverManagerConnectionSource">
<driverClass>com.microsoft.sqlserver.jdbc.SQLServerDriver
</driverClass>
<url>jdbc:sqlserver://mydbname:1401;databaseName=MWLOG;</url>
<user>Andrea</user>
<password>1234</password>
<sqlDialect class="ch.qos.logback.core.db.dialect.MsSQLDialect" />
</connectionSource>
<insertHeaders>true</insertHeaders>
</appender>
<root level="DEBUG">
<appender-ref ref="DB" />
</root>
</configuration>
如您所见,我正在使用MS sql服务器数据库实例(2017版)。
这是我初始化记录器的代码:
private void initMWLogger() {
// Set up mwLogger using logback-mw.xml.
try {
JoranConfigurator jc = new JoranConfigurator();
LoggerContext loggerCtx = new LoggerContext();
jc.setContext(loggerCtx);
loggerCtx.reset();
InputStream configStream = MiddlewareConnectorService.class.getResourceAsStream(Constants.LOGGER_XML);
//EXECUTION ON BELOW LINE IS HANGING FOR 10 MINUTES!!!!
jc.doConfigure(configStream);
mwLogger = loggerCtx.getLogger(MiddlewareConnectorService.class);
} catch (JoranException e) {
mwLogger = null;
}
}
在某些环境中,数据库连接的给定dns无法访问,因此在启动过程中我的应用程序挂起了10分钟。 是否可以为此设置超时?我不希望我的应用程序为此挂起...在最坏的情况下,我只希望数据库日志记录。被禁用。对于记录,我已经尝试使用this Ms sql server documentation上提到的* timeout查询参数。 另外,有人可以建议默认10分钟超时来自何处吗?或如何解决此问题?