I am trying to set the logbep appder pathmatically: i (to be accurate with fixed window rolling policy)
I am doing this because I want to enable my users to set the log path in the priority interface (eclipse RCP)
I have tried something like that but I do not change the log path from the defined in the configuration file:
logger logback_logger = (ch.qos.logback.classic.logger) LoggerFactory .getLogger (org) .slf4j.Logger.ROOT_LOGGER_NAME); RollingFileAppender & LT; ILoggingEvent & gt; Rfappender = (RollingFileAppender & lt; ILoggingEvent & gt;) logback_logger.getAppender ("FILE"); Rfappender.setFile (newFile); Fixed window rolling policy rolling policy = (fixed window rolling policy) rfappender.getRollingPolicy (); RollingPolicy.setFileNamePattern (newPattern); Once you have configured your apiender programmatically, you need to start its start (). (
Method for the sub-components of the appenders, then on the sub- Start the code> Start ()
. Then you add Appenders to the lodge of your choice. Here is an example:
Import ch.qos .logback.classic.Logger; Import ch.qos.logback.classic.encoder.PatternLayoutEncoder; Import ch.qos.logback.core.rolling.FixedWindowRollingPolicy; Import ch.qos.logback.core.rolling.RollingFileAppender; Import Ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy; Import ch.qos.logback.core.util.StatusPrinter; Import org.slf4j.LoggerFactory; Import ch.qos.logbac K.classic.LoggerContext; Public Sector Main {Public Static Zero Main (String [] ARGs) {Logger Contact Logger Contact = Logger FTC.GetLuggerFighter (); RollingFileAppRenderRFAppender = New RollingFileUpdate (); rfAppender.setContext (loggerContext ); RfAppender.setFile ("testFile.log"); Fixed window rolling policy rolling policy = new fixed window rolling policy (); RollingPolicy.setContext (loggerContext); // Rolling Policy is required to know their parents / this is one of the rare cases, where a sub-component is their parent rolling policy. Know about Certificate (RFPaider); RollingPolicy.setFileNamePattern ("testfile% i.log.zip."); RollingPolicy.start (); SizeBasedTriggeringPolicy triggeringPolicy = new ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy (); TriggeringPolicy.setMaxFileSize ("5MB"); TriggeringPolicy.start (); Pattern Layout Encoder Encoder = New Pattern Letter Encoder (); Encoder.setContext (loggerContext); Encoder.setparten ("% - 4relative [% thread]% -5 level% logger {35} -% msg% n"); Encoder.start (); RfAppender.setEncoder (encoder); RfAppender.setRollingPolicy (rollingPolicy); RfAppender.setTriggeringPolicy (triggeringPolicy); RfAppender.start (); // Attach rolling file appenders to the logger of your choice Logger LogBack Logger = Logger Context. Tag ("main"); LogbackLogger.addAppender (rfAppender); // Optional: print logback internal status message located. Print (logarcontext); // log log logger. Debug ("hello"); }}
The above code is a programmatic expression of the steps taken by the XML Configurator of LogBack, i.e. Zoron, when it parses the file
Comments
Post a Comment