
Hi Everyone :-) i've many troubles getting my FileAppender creating Logfiles. The Logfile itself is created, but it's always empty. I don't know what else i can do??! May someone can have a look at my code and help me out. Cheers Stephan import org.slf4j.Logger; import org.slf4j.LoggerFactory; import ch.qos.logback.classic.encoder.PatternLayoutEncoder; import ch.qos.logback.classic.spi.ILoggingEvent; import ch.qos.logback.classic.Level; import ch.qos.logback.classic.LoggerContext; import ch.qos.logback.core.ConsoleAppender; import ch.qos.logback.core.FileAppender; import ch.qos.logback.core.util.StatusPrinter; part of my main code: // get instance of RootLogger for modification ch.qos.logback.classic.Logger logger = (ch.qos.logback.classic.Logger) LoggerFactory .getLogger(Logger.ROOT_LOGGER_NAME); // reset the default context (which may already have been initialized) // since we want to reconfigure it LoggerContext logContext = logger.getLoggerContext(); logContext.reset(); // setup FileAppender PatternLayoutEncoder encoder1 = new PatternLayoutEncoder(); encoder1.setPattern("%date %level [%thread] [%file:%line] %msg%n"); encoder1.setContext(logContext); encoder1.start(); // create FileAppender FileAppender<ILoggingEvent> logfileOut = new FileAppender<ILoggingEvent>(); logfileOut.setAppend(true); logfileOut.setFile("/home/stepwalk/AlmiraTestLocal/EclipseTestLogs/" + name + "_" + System.currentTimeMillis() + ".log"); logfileOut.setContext(logContext); logfileOut.setEncoder(encoder1); logfileOut.start(); // create ConsoleAppender ConsoleAppender<ILoggingEvent> consoleOut = new ConsoleAppender<ILoggingEvent>(); consoleOut.setEncoder(encoder1); consoleOut.start(); // attach the rolling file appender to the root logger logger.addAppender(logfileOut); logger.addAppender(consoleOut); logger.setLevel(Level.DEBUG); // print logback internal status messages StatusPrinter.print(logContext); ......more code...... -- View this message in context: http://logback.10977.n7.nabble.com/Configuring-FileAppender-only-empty-logfi... Sent from the Users mailing list archive at Nabble.com.

i got the following logging: 14:47:05,523 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.groovy] 14:47:05,524 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.xml] 14:47:05,524 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.xml] 14:47:05,525 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Setting up default configuration. 14:47:05,597 |-INFO in ch.qos.logback.core.FileAppender[null] - File property is set to [/home/stepwalk/AlmiraTestLocal/EclipseTestLogs/RecordingLoopFps_1385646425597.log] is the [null] the problem?? Cheers Stephan -- View this message in context: http://logback.10977.n7.nabble.com/Configuring-FileAppender-only-empty-logfi... Sent from the Users mailing list archive at Nabble.com.

Looks good except that encoders cannot be shared. Try creating to PatternLayoutEncoder instances. On 11/28/2013 2:30 PM, stepwalk wrote:
Hi Everyone :-)
i've many troubles getting my FileAppender creating Logfiles. The Logfile itself is created, but it's always empty. I don't know what else i can do??! May someone can have a look at my code and help me out.
Cheers Stephan
import org.slf4j.Logger; import org.slf4j.LoggerFactory;
import ch.qos.logback.classic.encoder.PatternLayoutEncoder; import ch.qos.logback.classic.spi.ILoggingEvent; import ch.qos.logback.classic.Level; import ch.qos.logback.classic.LoggerContext; import ch.qos.logback.core.ConsoleAppender; import ch.qos.logback.core.FileAppender; import ch.qos.logback.core.util.StatusPrinter;
part of my main code:
// get instance of RootLogger for modification ch.qos.logback.classic.Logger logger = (ch.qos.logback.classic.Logger) LoggerFactory .getLogger(Logger.ROOT_LOGGER_NAME);
// reset the default context (which may already have been initialized) // since we want to reconfigure it LoggerContext logContext = logger.getLoggerContext(); logContext.reset();
// setup FileAppender PatternLayoutEncoder encoder1 = new PatternLayoutEncoder(); encoder1.setPattern("%date %level [%thread] [%file:%line] %msg%n"); encoder1.setContext(logContext); encoder1.start();
// create FileAppender FileAppender<ILoggingEvent> logfileOut = new FileAppender<ILoggingEvent>(); logfileOut.setAppend(true); logfileOut.setFile("/home/stepwalk/AlmiraTestLocal/EclipseTestLogs/" + name + "_" + System.currentTimeMillis() + ".log"); logfileOut.setContext(logContext); logfileOut.setEncoder(encoder1); logfileOut.start();
// create ConsoleAppender ConsoleAppender<ILoggingEvent> consoleOut = new ConsoleAppender<ILoggingEvent>(); consoleOut.setEncoder(encoder1); consoleOut.start();
// attach the rolling file appender to the root logger logger.addAppender(logfileOut); logger.addAppender(consoleOut); logger.setLevel(Level.DEBUG);
// print logback internal status messages StatusPrinter.print(logContext);
......more code......
-- View this message in context: http://logback.10977.n7.nabble.com/Configuring-FileAppender-only-empty-logfi... Sent from the Users mailing list archive at Nabble.com. _______________________________________________ Logback-user mailing list Logback-user@qos.ch http://mailman.qos.ch/mailman/listinfo/logback-user

A second encoder solved it perfectly! A last question is it possible to set a different logging level for each appender programmatically? Do i have to create two logger instances for that? Thanks for your help. Cheers Stephan -- View this message in context: http://logback.10977.n7.nabble.com/Configuring-FileAppender-only-empty-logfi... Sent from the Users mailing list archive at Nabble.com.
participants (2)
-
Ceki Gülcü
-
stepwalk