
Hello all, I am trying to figure out why logback is not writing to a file. It creates the file okay, but it is not writing anything to it. I have the following programmatic configuration in my java code. This just reads a properties file and sets system properties out of the logback values so they can be read from the configuration.xml file. It also configures the logger from logback_configuration.xml instead of the default logback.xml private static void initLogback() { Map<String,String> logbackProperties = new HashMap<>(); PropertyDeluxe properties = RenoProperties.getProperties(); for (String key : properties.getKeys()) if (key.startsWith(RenoProperties.LOGBACK_PROPERTY_PREFIX)) logbackProperties.put(key,properties.getString(key)); //set system properties out of the logback values so we can reference them from the configuration file for (String key : logbackProperties.keySet()) System.setProperty(key,logbackProperties.get(key)); //configure the logger from the logback_configuration.xml. Default is logback.xml LoggerContext lc = new LoggerContext(); try { JoranConfigurator configurator = new JoranConfigurator(); configurator.setContext(lc); lc.reset(); configurator.doConfigure(properties.getString(RenoProperties.LOGBACK_CONFIG_FILE_PROPERTY)); } catch (JoranException je) { je.printStackTrace(); } StatusPrinter.printInCaseOfErrorsOrWarnings(lc); } Here are the values defined in the property file. Where base.dir is passed in through the command line as "@@base.dir=C:/project_work/reno" @@scenario.dir = base.dir/scenarios/scenario.name @@_outputs.dir = scenario.dir/outputs logback.config.file = base.dir/resource/code/java/logback_configuration.xml logback.file.main = _outputs.dir/logs/java_main.log logback.level = info And here is the logback_configuration.xml <configuration scan="true" debug="true"> <appender name="FILE" class="ch.qos.logback.core.FileAppender"> <file>${logback.file.main}</file> <append>true</append> <!-- encoders are assigned the type ch.qos.logback.classic.encoder.PatternLayoutEncoder by default --> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <Pattern> %d{HH:mm:ss} [%-30.-30thread] %-5level %-25.25logger{25} - %msg%n </Pattern> </encoder> </appender> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <pattern> %d{HH:mm:ss} %green([%-5.-5thread]) %-5level %-25.25logger{25} - %msg%n </pattern> </encoder> </appender> <root level="${logback.level}"> <appender-ref ref="FILE" /> <appender-ref ref="STDOUT" /> </root> </configuration> I’ve looked everywhere and nothing really stands out. Can anyone see what I’ve missed? Thank you Chryssa
participants (1)
-
Charalambides, Chryssanthi