The ConfigLoggingBundle logs the Dropwizard configuration to slf4j at INFO level, by serializing the in-memory configuration object to json. It does not echo the contents of the configuration file back. The output will contain default values that were not specified in the original configuration file. Some other values will be normalized or pretty printed.To turn it on, add ConfigLoggingBundle to the list of registered bundles. @Override public void initialize(Bootstrap<HelloWorldConfiguration> bootstrap) { bootstrap.setConfigurationFactoryFactory(new JsonConfigurationFactoryFactory<>()); bootstrap.addBundle(new EnvironmentConfigBundle()); bootstrap.addBundle(new ObjectMapperBundle()); bootstrap.addBundle(new ConfigLoggingBundle()); StructuredArgumentsMDCLogger structuredLogger = new StructuredArgumentsMDCLogger(bootstrap.getObjectMapper()); bootstrap.addBundle(new JerseyHttpLoggingBundle(structuredLogger)); bootstrap.addBundle(new ClockBundle()); bootstrap.addBundle(new UUIDBundle()); bootstrap.addBundle(new H2Bundle()); bootstrap.addBundle(new NamedDataSourceBundle()); bootstrap.addBundle(new ConnectionManagerBundle()); bootstrap.addBundle(new ConnectionManagerHolderBundle()); bootstrap.addBundle(new ReladomoBundle()); bootstrap.addCommand(new RenderCommand()); bootstrap.addBundle(new AssetsBundle()); bootstrap.addBundle(new MigrationsBundle<HelloWorldConfiguration>() { @Override public DataSourceFactory getDataSourceFactory(HelloWorldConfiguration configuration) { return Iterate.getOnly(configuration.getNamedDataSourceFactories()); } }); bootstrap.addBundle(new ViewBundle<HelloWorldConfiguration>() { @Override public Map<String, Map<String, String>> getViewConfiguration(HelloWorldConfiguration configuration) { return configuration.getViewRendererConfiguration(); } }); } Now HelloWorldApplication will log something like this on startup: INFO 12:53:29 [main] {liftwizard.priority=-8, liftwizard.bundle=ConfigLoggingBundle} io.liftwizard.dropwizard.bundle.config.logging.ConfigLoggingBundle: Inferred Dropwizard configuration: json5 { "template": "Hello, %s!", "defaultName": "Stranger", "configLoggingFactory": { "enabled": true }, // ... "metrics": { "frequency": "1 minute", "reporters": [ ] } } Note that the metrics section at the end was not specified in test-example.json5 . It comes from serializing the output of io.dropwizard.Configuration.getMetricsFactory() .This output can be helpful for fleshing out the configuration file with default options to make it easier to edit. For example, it's much easier to flip a boolean flag from false to true than to first figure out where in the configuration file it belongs and the exact spelling of its key. @JsonProperty("metrics") public MetricsFactory getMetricsFactory() { return metrics; } The ConfigLoggingBundle also logs the "default" configuration at the DEBUG level. It does this by instantiating a new copy of the configuration class using the default no-arg constructor, serializing it to json, and logging it. The default configuration output can be useful for finding redundant configuration to remove. ConfigLoggingBundle lives in the liftwizard-bundle-logging-config module. xml <dependency> <groupId>io.liftwizard</groupId> <artifactId>liftwizard-bundle-logging-config</artifactId> </dependency>