<div dir="ltr">Hi,<div><p>I'm using logback's DBAppender to log the http request/response into the DataBase (logging_event) table in my Springboot app. </p>
<div>Below given is the Java configuration class for DbAppender.</div>
<div>
<pre class="gmail-code gmail-panel">@Configuration
public class LogbackConfiguration {
@Bean <br>public DBAppender dbAppender(DataSource ds){     <br>DBAppender dbAppender = new DBAppender();      <br>LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory(); Logger logger = loggerContext.getLogger("org.zalando.logbook"); loggerContext.start(); <br>DataSourceConnectionSource connectionSource = new DataSourceConnectionSource();   connectionSource.setDataSource(ds ); <br>connectionSource.setContext(loggerContext); <br>connectionSource.start(); <br>dbAppender.setConnectionSource(connectionSource); <br>dbAppender.start(); <br>logger.addAppender(dbAppender);<br>return dbAppender; <br>}}
</pre>
</div>
<div>I have another configuration class that has configuration properties and the values of those properties can be changed dynamically. I'm using the @RefreshScope (<em>org.springframework.cloud.context.config.annotation.RefreshScope</em>) annotation to get the new values of the config properties on the fly.</div>
<div>The DBAppender works fine, except when I make any changes to any of the configuration properties externally (changing the value of an existing property or adding a new config property in Consul) while the app is running. </div>
<div>After I make any changes to any config property externally, the DbAppender stops logging into the DB table. Console logger continues to work fine. No error/exception message. I will have to restart the app everytime after I change a config value to get the DbAppender working.</div></div><div><br></div><div>Could you please guide me on this issue?</div><div><br></div><div>Thank you!</div></div>