I have a pretty standard Scalatra project using Logback for logging.
Following the logback manual I have added a logback-test.xml
for my development configuration (logs of debugs), whilst maintaining a production logback.xml
.
However, in development while using the xsbt-web-plugin
to run a container with code reloading, my app only seems to pick up the logback.xml
.
How do I get the desired behavior?:
- In development mode (
./sbt container:start
) the app useslogback-test.xml
- When assembled into a zip using SBT-assembly, exclude the test config.
Currently neither of these seems to work.
You're misusing
logback-test.xml
. It's intended for unit-like tests only and should be placed insrc/test/resources
(which is automatically excluded from prod). To achieve what you want - you may set up path to yourlogback-dev.xml
by system property:This path may be relative. See, https://stackoverflow.com/a/26538449/1809978
In my practice we don't pack
logback.xml
even in prod (it's pointed to some external place) to have ability to change logging configuration ad-hoc.P.S. If you're also interested about excluding files from sbt-assembly - this may help