I test to run a sample logging message to a file. But I am wondering how can I switch logging to different files at runtime? For example, initially the message is logged to <log_dir>/<file_a>.log. Later on I would like the application to log message to <log_dir>/<file_b>.log. Is it doable with logback lib?
I want to log message to logs/<parent_key_id>/<key_id>...log. Is RollingPolicy configured to start up once? How can I change logging to another log file such as logs/<parent_key_id1>/<key_id1>...log when certain condition is met? Thanks The current setting: logback.xml <?xml version="1.0" encoding="UTF-8"?> <configuration scan="false" debug="false"> <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <rollingPolicy class="sample.logging.MyRollingPolicy"> <FileNamePattern>%keyId_%d.log.gz</FileNamePattern> <MaxHistory>60</MaxHistory> </rollingPolicy> <layout class="ch.qos.logback.classic.PatternLayout"> <!-- http://logback.qos.ch/manual/layouts.html#PatternLayout --> <Pattern>[%4p] [%d{ISO8601}] [%t] %c{1}: %m%n</Pattern> </layout> </appender> <root level="INFO"> <appender-ref ref="FILE"/> </root> </configuration> MyRolling.scala package sample.logging import java.io.File import ch.qos.logback.core.rolling.TimeBasedRollingPolicy; class MyRollingPolicy[E] extends TimeBasedRollingPolicy[E] { override def setFileNamePattern(fnp: String) { try{ println("fnp passed in: "+fnp) val fnp1 = fnp.replace("%keyId", "k_1_3") println("[after replaced] fnp1 now is "+fnp1) val f = new File("logs/" + "parent_key_id"); // Logback will create any necessary parent paths. super.setFileNamePattern(f.getAbsolutePath() + "/" + fnp1); } catch { case e: Exception => { println("something go wrong..."+e) throw new RuntimeException(e); } } } } _______________________________________________ Logback-user mailing list Logback-user@qos.ch http://mailman.qos.ch/mailman/listinfo/logback-user