@Override public FileAppender<ILoggingEvent> createAppender(String appenderName) { FileAppender<ILoggingEvent> appender = new FileAppender<>(); appender.setContext(context); appender.setFile(new File(logsDir, filenamePrefix + ".log").getAbsolutePath()); appender.setName(appenderName); return appender; } }
@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; }
@Override public FileAppender createAppender(String appenderName) { FileAppender appender = new FileAppender<>(); appender.setContext(context); appender.setFile(new File(logsDir, filenamePrefix + ".log").getAbsolutePath()); appender.setName(appenderName); return appender; } }
private static void setupLogging(TestConfig testConfig) { val logFile = new java.io.File(testConfig.getTestLogPath()); if (logFile.delete()) { TestLogger.log("Main", "Deleted log file %s.", logFile.getAbsolutePath()); } // Configure slf4j to not log anything (console or whatever). This interferes with the console interaction. LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory(); context.getLoggerList().get(0).detachAndStopAllAppenders(); val fa = new FileAppender<ILoggingEvent>(); fa.setContext(context); fa.setName("selftest"); fa.setFile(logFile.getAbsolutePath()); val encoder = new PatternLayoutEncoder(); encoder.setContext(context); encoder.setPattern("%date{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %level - %msg%n"); encoder.start(); fa.setEncoder(encoder); fa.start(); context.getLoggerList().get(0).addAppender(fa); context.getLoggerList().get(0).setLevel(Level.INFO); //context.reset(); }
private Logger createLogger(File logFile) { LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory(); ch.qos.logback.classic.Logger log = loggers.get(); log.setAdditive(false); FileAppender fileAppender = new FileAppender(); fileAppender.setContext(context); fileAppender.setName(Thread.currentThread().getName()); fileAppender.setFile(logFile.getAbsolutePath()); PatternLayoutEncoder encoder = new PatternLayoutEncoder(); encoder.setContext(context); encoder.setPattern(LOG_PATTERN); encoder.start(); fileAppender.setEncoder(encoder); fileAppender.start(); log.detachAndStopAllAppenders(); log.addAppender(fileAppender); return log; }
@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; }
private static FileAppender getFileAppender(LoggerContext loggerContext, PatternLayoutEncoder encoder, String fileName, String loggerName) { if (fileAppender != null) { fileAppender.stop(); } fileAppender = new FileAppender(); fileAppender.setContext(loggerContext); fileAppender.setName(loggerName); fileAppender.setFile(fileName); fileAppender.setEncoder(encoder); fileAppender.start(); return fileAppender; }
@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()); }
@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()); }
@Before public void setUp() throws InterruptedException { File outputDir = new File(outputDirStr); outputDir.mkdirs(); fa.setContext(context); fa.setName("FILE"); fa.setEncoder(new EchoEncoder<Object>()); fa.setFile(logfileStr); fa.start(); }
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); }
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; }
@Before public void setUp() throws IOException, InterruptedException { if (!isConformingHost()) { return; } Process p = runLoopFSScript(LoopFSCommand.setup); p.waitFor(); dump("/tmp/loopfs.log"); fa.setContext(context); File outputDir = new File(outputDirStr); outputDir.mkdirs(); System.out.println("FileAppenderResilienceTest output dir [" + outputDirStr + "]"); fa.setName("FILE"); fa.setEncoder(new EchoEncoder<Object>()); fa.setFile(logfileStr); fa.start(); }
FileAppender<String> buildFileAppender(String name, String filenameSuffix) { FileAppender<String> fileAppender = new FileAppender<String>(); fileAppender.setName(name); fileAppender.setContext(context); fileAppender.setFile(randomOutputDir+filenameSuffix); fileAppender.setEncoder(new NopEncoder<String>()); return fileAppender; }
@Before public void setUp() throws InterruptedException { context.getStatusManager().add(new OnConsoleStatusListener()); File outputDir = new File(outputDirStr); outputDir.mkdirs(); fa.setContext(context); fa.setName("FILE"); fa.setPrudent(true); fa.setEncoder(new EchoEncoder<Object>()); fa.setFile(logfileStr); fa.start(); }
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); }
protected Appender<Object> getConfiguredAppender() { FileAppender<Object> appender = new FileAppender<Object>(); appender.setEncoder(new NopEncoder<Object>()); appender.setFile(CoreTestConstants.OUTPUT_DIR_PREFIX+"temp.log"); appender.setName("test"); appender.setContext(context); appender.start(); return appender; }
@Test public void fileNameCollision() { String fileName = CoreTestConstants.OUTPUT_DIR_PREFIX + diff+ "fileNameCollision"; FileAppender<Object> appender0 = new FileAppender<Object>(); appender0.setName("FA0"); appender0.setFile(fileName); appender0.setContext(context); appender0.setEncoder(new DummyEncoder<Object>()); appender0.start(); assertTrue(appender0.isStarted()); FileAppender<Object> appender1 = new FileAppender<Object>(); appender1.setName("FA1"); appender1.setFile(fileName); appender1.setContext(context); appender1.setEncoder(new DummyEncoder<Object>()); appender1.start(); assertFalse(appender1.isStarted()); StatusPrinter.print(context); StatusChecker checker = new StatusChecker(context); checker.assertContainsMatch(Status.ERROR, "'File' option has the same value"); }