I know I can set the logback.xml path like this:
Specifying the location of the default configuration file as a system property
You may specify the location of the default configuration file with a system property named "logback.configurationFile". The value of this property can be a URL, a resource on the class path or a path to a file external to the application.
java -Dlogback.configurationFile=/path/to/config.xml chapters.configuration.MyApp1
but how can I do it in code?
You may specify the location of the default configuration file with a system property named "logback. configurationFile". The value of this property can be a URL, a resource on the class path or a path to a file external to the application.
In a Logback. xml file, all the configuration options are enclosed within the <configuration> root element. In the root element, you can set the debug=true attribute to inspect Logback's internal status. You can also configure auto scanning of the configuration file by setting the scan=true attribute.
xml or logback. xml can be located directly under any folder declared in the class path. For example, if the class path reads "c:/java/jdk15/lib/rt. jar;c:/mylibs/" then the logback.
LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory(); loggerContext.reset(); JoranConfigurator configurator = new JoranConfigurator(); InputStream configStream = FileUtils.openInputStream(logbackPropertiesUserFile); configurator.setContext(loggerContext); configurator.doConfigure(configStream); // loads logback file configStream.close();
You could use:
System.setProperty("logback.configurationFile", "/path/to/config.xml");
But it would have to happen before logback is loaded, i.e. something like:
class Main { static { System.setProperty("logback.configurationFile", "/path/to/config.xml");} private final Logger LOG = LoggerFactory.getLogger(Main.class); public void main (String[] args) { ... } }
Note: I have not tested it but it should work.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With