@Override protected OutputStreamAppender<E> appender(LoggerContext context) { final FileAppender<E> appender = buildAppender(context); appender.setName("file-appender"); appender.setAppend(true); appender.setContext(context); appender.setImmediateFlush(immediateFlush); appender.setPrudent(false); return appender; }
/** * Creates a file appender and adds it to logback. * * @param verboseLog the path to the verbose log file */ private void prepareLogger(String verboseLog) { final StaticLoggerBinder loggerBinder = StaticLoggerBinder.getSingleton(); final LoggerContext context = (LoggerContext) loggerBinder.getLoggerFactory(); final PatternLayoutEncoder encoder = new PatternLayoutEncoder(); encoder.setPattern("%d %C:%L%n%-5level - %msg%n"); encoder.setContext(context); encoder.start(); final FileAppender<ILoggingEvent> fa = new FileAppender<>(); fa.setAppend(true); fa.setEncoder(encoder); fa.setContext(context); fa.setFile(verboseLog); final File f = new File(verboseLog); String name = f.getName(); final int i = name.lastIndexOf('.'); if (i > 1) { name = name.substring(0, i); } fa.setName(name); fa.start(); final ch.qos.logback.classic.Logger rootLogger = context.getLogger(ch.qos.logback.classic.Logger.ROOT_LOGGER_NAME); rootLogger.addAppender(fa); }
/** * Initializes the logger. This is called when we need to create a new * logger for the given file name. * * @param fileStr * @return a new Logger instance for the given fileStr * @throws IOException */ protected Logger initLogger(String fileStr) throws IOException { String loggerName = "NagiosWriter" + this.hashCode(); final PatternLayoutEncoder encoder = new PatternLayoutEncoder(); encoder.setContext(loggerContext); encoder.setPattern(LOG_PATTERN); encoder.start(); final FileAppender appender = new FileAppender(); appender.setContext(loggerContext); appender.setName(loggerName + "File"); appender.setAppend(true); appender.setBufferSize(new FileSize(LOG_IO_BUFFER_SIZE_BYTES)); appender.setFile(fileStr); appender.setEncoder(encoder); appender.start(); Logger logger = loggerContext.getLogger(loggerName); logger.addAppender(appender); logger.setLevel(Level.INFO); logger.setAdditive(false); return logger; }
/** * If the value of <b>File</b> is not <code>null</code>, then * {@link #openFile} is called with the values of <b>File</b> and * <b>Append</b> properties. */ public void start() { int errors = 0; if (getFile() != null) { addInfo("File property is set to [" + fileName + "]"); if (prudent) { if (!isAppend()) { setAppend(true); addWarn("Setting \"Append\" property to true on account of \"Prudent\" mode"); } } try { openFile(getFile()); } catch (java.io.IOException e) { errors++; addError("openFile(" + fileName + "," + append + ") call failed.", e); } } else { errors++; addError("\"File\" property not set for appender named [" + name + "]."); } if (errors == 0) { super.start(); } }
fileOutput.setAppend(false); fileOutput.setContext(context); fileOutput.setFile(logFile.getAbsolutePath());
/** Create and return synchronous the file appender. */ private FileAppender<ILoggingEvent> getFileAppender() { FileAppender<ILoggingEvent> appender = new FileAppender<ILoggingEvent>(); appender.setFile(currentLogFilename); appender.setAppend(true); return appender; }
/** Create and return synchronous the file appender. */ private FileAppender<ILoggingEvent> getFileAppender() { FileAppender<ILoggingEvent> appender = new FileAppender<ILoggingEvent>(); appender.setFile(currentLogFilename); appender.setAppend(true); return appender; }
private ch.qos.logback.classic.Logger openDebugLogger(File tempDir) { final LoggerContext loggerContext = new LoggerContext(); final FileAppender fileAppender = new FileAppender(); fileAppender.setFile(new File(tempDir.getAbsolutePath() + ".log").getAbsolutePath()); fileAppender.setContext(loggerContext); fileAppender.setAppend(false); fileAppender.setImmediateFlush(true); final PatternLayoutEncoder encoder = new PatternLayoutEncoder(); encoder.setContext(loggerContext); encoder.setPattern("%-4relative [%-5level] %msg%n"); encoder.start(); fileAppender.setEncoder(encoder); fileAppender.start(); final ch.qos.logback.classic.Logger debugLogger = loggerContext.getLogger(getClass().getCanonicalName() + "_" + System.currentTimeMillis()); debugLogger.addAppender(fileAppender); debugLogger.setLevel(Level.DEBUG); return debugLogger; }
@Override protected OutputStreamAppender<E> appender(LoggerContext context) { final FileAppender<E> appender = buildAppender(context); appender.setName("file-appender"); appender.setAppend(true); appender.setContext(context); appender.setImmediateFlush(immediateFlush); appender.setPrudent(false); return appender; }
@Test public void testCreateParentFolders() { String filename = CoreTestConstants.OUTPUT_DIR_PREFIX + "/fat-testCreateParentFolders-" + diff + "/testCreateParentFolders.txt"; File file = new File(filename); assertFalse(file.getParentFile().exists()); assertFalse(file.exists()); FileAppender<Object> appender = new FileAppender<Object>(); appender.setEncoder(new DummyEncoder<Object>()); appender.setAppend(false); appender.setFile(filename); appender.setName("testCreateParentFolders"); appender.setContext(context); appender.start(); appender.doAppend(new Object()); appender.stop(); assertTrue(file.getParentFile().exists()); assertTrue(file.exists()); // cleanup assertTrue("failed to delete " + file.getAbsolutePath(), file.delete()); File parent = file.getParentFile(); assertTrue("failed to delete " + parent.getAbsolutePath(), parent.delete()); }
public synchronized static void enableLogFile() { init(); LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory(); PatternLayoutEncoder encoder = new PatternLayoutEncoder(); encoder.setContext(context); encoder.setPattern(pattern); encoder.start(); FileAppender<ILoggingEvent> file = new FileAppender<>(); file.setContext(context); file.setAppend(true); file.setFile("mirror.log"); file.setEncoder(encoder); file.start(); getRootLogger().addAppender(file); }
@Test public void smoke() { String filename = CoreTestConstants.OUTPUT_DIR_PREFIX + "/fat-smoke.log"; FileAppender<Object> appender = new FileAppender<Object>(); appender.setEncoder(new DummyEncoder<Object>()); appender.setAppend(false); appender.setFile(filename); appender.setName("smoke"); appender.setContext(context); appender.start(); appender.doAppend(new Object()); appender.stop(); File file = new File(filename); assertTrue(file.exists()); assertTrue("failed to delete " + file.getAbsolutePath(), file.delete()); }
private static void setOutput(final String... paths) { LOG_ROOT.getLoggerContext().reset(); final PatternLayoutEncoder encoder = new PatternLayoutEncoder(); encoder.setPattern("%date %level [%thread] [%file:%line] %msg%n"); encoder.setContext(LOG_ROOT.getLoggerContext()); encoder.start(); for (final String path : paths) { // create FileAppender final FileAppender<ILoggingEvent> logfileOut = new FileAppender<>(); logfileOut.setAppend(false); logfileOut.setFile(path); logfileOut.setContext(LOG_ROOT.getLoggerContext()); logfileOut.setEncoder(encoder); logfileOut.start(); // attach the rolling file appender to the root logger LOG_ROOT.addAppender(logfileOut); } }
private Map<String, Appender<ILoggingEvent>> createFileAppenders(final LoggerContext context, final LogbackModule module) { Map<String, Appender<ILoggingEvent>> appendersMap = new HashMap<>(); for (FileAppenderTO appender : module.getFileAppenderTO()) { Preconditions.checkState(appendersMap.containsKey(appender.getName()) == false, "Duplicate appender name %s", appender.getName()); ch.qos.logback.core.FileAppender<ILoggingEvent> app = new ch.qos.logback.core.FileAppender<>(); app.setAppend(appender.getAppend()); app.setContext(context); PatternLayoutEncoder encoder = new PatternLayoutEncoder(); encoder.setContext(context); encoder.setPattern(appender.getEncoderPattern()); encoder.start(); app.setEncoder(encoder); app.setFile(appender.getFileName()); app.setName(appender.getName()); app.start(); appendersMap.put(app.getName(), app); } return appendersMap; }
public IOPerformance(boolean _immediateFlush, long _len) { this.len = _len; this.immediateFlush = _immediateFlush; context = new LoggerContext(); logger = context.getLogger("logger-" + getName()); // A FileAppender is created according to the buffering and // immediate flush setting of this IO instance. FileAppender<ILoggingEvent> fa = new FileAppender<ILoggingEvent>(); fa.setName("FILE"); PatternLayoutEncoder pa = new PatternLayoutEncoder(); pa.setPattern("%r %5p %c [%t] - %m%n"); pa.setContext(context); pa.start(); fa.setEncoder(pa); fa.setFile(LOG_FILE); fa.setAppend(true); fa.setContext(context); fa.start(); ((ch.qos.logback.classic.Logger) logger).addAppender(fa); StatusPrinter.print(context); }
static Logger buildLoggerContext(LoggerContext lc) { Logger root = lc.getLogger(Logger.ROOT_LOGGER_NAME); PatternLayoutEncoder patternLayout = new PatternLayoutEncoder(); patternLayout.setContext(lc); patternLayout.setPattern("%d %l [%t] - %msg%n"); patternLayout.start(); FileAppender<ILoggingEvent> fileAppender = new FileAppender<ILoggingEvent>(); fileAppender.setContext(lc); fileAppender.setFile(CoreTestConstants.TARGET_DIR + "lbclassic135.log"); fileAppender.setEncoder(patternLayout); fileAppender.setAppend(false); fileAppender.start(); root.addAppender(fileAppender); return lc.getLogger(LoggingToFileThroughput.class); }
protected static void setUpLdifLogging(LoggerContext context) { LdifAuditType audit = (LdifAuditType) LscConfiguration.getAudit("LDIF"); FileAppender<ILoggingEvent> appender = new FileAppender<ILoggingEvent>(); appender.setName(audit.getName()); appender.setAppend(audit.isAppend()); appender.setFile(audit.getFile()); appender.setContext(context); LdifLayout ldifLayout = new LdifLayout(); ldifLayout.setLogOperations(audit.getOperations()); if(audit.isLogOnlyLdif() != null) { ldifLayout.setOnlyLdif(audit.isLogOnlyLdif()); } ldifLayout.setContext(context); ldifLayout.start(); appender.setLayout(ldifLayout); appender.start(); ch.qos.logback.classic.Logger rootLogger = context.getLogger(ch.qos.logback.classic.Logger.ROOT_LOGGER_NAME); rootLogger.addAppender(appender); }
public IO(boolean _buffered, boolean _immediateFlush, long _len) { this.len = _len; this.buffered = _buffered; this.immediateFlush = _immediateFlush; context = new LoggerContext(); logger = context.getLogger("logger-" + getName()); // A FileAppender is created according to the buffering and // immediate flush setting of this IO instance. FileAppender<ILoggingEvent> fa = new FileAppender<ILoggingEvent>(); if (longMessage) { PatternLayoutEncoder pa = new PatternLayoutEncoder(); pa.setPattern("%r %5p %c [%t] - %m%n"); pa.setContext(context); pa.start(); fa.setEncoder(pa); } else { fa.setEncoder(new EchoEncoder<ILoggingEvent>()); } fa.setFile(getName() + ".log"); fa.setAppend(false); fa.setContext(context); fa.start(); }
static LoggerContext buildLoggerContext(String filename, boolean safetyMode) { LoggerContext loggerContext = new LoggerContext(); FileAppender<ILoggingEvent> fa = new FileAppender<ILoggingEvent>(); PatternLayoutEncoder patternLayout = new PatternLayoutEncoder(); patternLayout.setPattern("%5p %c - %m%n"); patternLayout.setContext(loggerContext); patternLayout.start(); fa.setEncoder(patternLayout); fa.setFile(filename); fa.setAppend(false); fa.setPrudent(safetyMode); fa.setContext(loggerContext); fa.start(); ch.qos.logback.classic.Logger root = loggerContext .getLogger(Logger.ROOT_LOGGER_NAME); root.addAppender(fa); return loggerContext; }
static LoggerContext buildLoggerContext(String stamp, String filename, boolean safetyMode) { LoggerContext loggerContext = new LoggerContext(); FileAppender<ILoggingEvent> fa = new FileAppender<ILoggingEvent>(); PatternLayoutEncoder patternLayout = new PatternLayoutEncoder(); patternLayout.setPattern(stamp + " %5p - %m%n"); patternLayout.setContext(loggerContext); patternLayout.start(); fa.setEncoder(patternLayout); fa.setFile(filename); fa.setAppend(true); fa.setPrudent(safetyMode); fa.setContext(loggerContext); fa.start(); ch.qos.logback.classic.Logger root = loggerContext .getLogger(Logger.ROOT_LOGGER_NAME); root.addAppender(fa); return loggerContext; }