Refine search
/** * 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); }
@Test public void log_to_ce_file() { LoggerContext ctx = underTest.configure(props); Logger root = ctx.getLogger(Logger.ROOT_LOGGER_NAME); Appender<ILoggingEvent> appender = root.getAppender("file_ce"); assertThat(appender).isInstanceOf(FileAppender.class); FileAppender fileAppender = (FileAppender) appender; assertThat(fileAppender.getFile()).isEqualTo(new File(logDir, "ce.log").getAbsolutePath()); assertThat(fileAppender.getEncoder()).isInstanceOf(PatternLayoutEncoder.class); PatternLayoutEncoder encoder = (PatternLayoutEncoder) fileAppender.getEncoder(); assertThat(encoder.getPattern()).isEqualTo("%d{yyyy.MM.dd HH:mm:ss} %-5level ce[%X{ceTaskUuid}][%logger{20}] %msg%n"); }
@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; }
@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; } }
/** * 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; }
/** * Programmatically (i.e. not in XML) create a Logback logger for requests happening on this router. * http://stackoverflow.com/a/17215011/778449 */ private static Logger createLogger(String file) { LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory(); PatternLayoutEncoder ple = new PatternLayoutEncoder(); ple.setPattern("%d{yyyy-MM-dd'T'HH:mm:ss.SSS} %msg%n"); ple.setContext(lc); ple.start(); FileAppender<ILoggingEvent> fileAppender = new FileAppender<>(); fileAppender.setFile(file); fileAppender.setEncoder(ple); fileAppender.setContext(lc); fileAppender.start(); Logger logger = (Logger) LoggerFactory.getLogger("REQ_LOG"); logger.addAppender(fileAppender); logger.setLevel(Level.INFO); logger.setAdditive(false); return logger; } }
final ch.qos.logback.classic.Logger rootLogger = (ch.qos.logback.classic.Logger) LoggerFactory.getLogger(ROOT_LOGGER_NAME); final LoggerContext context = rootLogger.getLoggerContext(); context.reset(); final Path file = directory.resolve(filename); final FileAppender<ILoggingEvent> fileAppender = new FileAppender<>(); fileAppender.setEncoder(ple); fileAppender.setFile(file.toString()); fileAppender.setContext(context); fileAppender.start(); rootLogger.setLevel(Level.DEBUG); rootLogger.addAppender(fileAppender);
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(); }
+ File.separator + "topology-" + topology.getId() + ".log"; FileAppender<ILoggingEvent> fileAppender = new FileAppender<>(); fileAppender.setName("FILE"); fileAppender.setFile(logPath); fileAppender.setContext(loggerContext); fileAppender.setLayout(patternLayout); fileAppender.setAppend(true); fileAppender.start(); Logger logger = loggerContext.getLogger(component.getMainClass()); logger.detachAndStopAllAppenders(); logger.addAppender(fileAppender); logger.setAdditive(false); logger.setLevel(Level.toLevel(topology.getLogLevel()));
Logger root = context.getLogger(Logger.ROOT_LOGGER_NAME); root.detachAndStopAllAppenders(); consolePat.start(); console.setEncoder(consolePat); root.addAppender(console); FileAppender<ILoggingEvent> fileOutput = new FileAppender<>(); fileOutput.setAppend(false); fileOutput.setContext(context); fileOutput.setFile(logFile.getAbsolutePath()); PatternLayoutEncoder filePat = new PatternLayoutEncoder(); filePat.setContext(context); filePat.setPattern(FILE_PATTERN); filePat.start(); fileOutput.setEncoder(filePat); filter.setLevel(logFileLevel.toString()); filter.start(); fileOutput.addFilter(filter); fileOutput.start(); root.addAppender(fileOutput); context.getLogger("org.grouplens.grapht").setLevel(Level.WARN);
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; }
ple.setContext(lc); ple.start(); FileAppender<ILoggingEvent> fileAppender = new FileAppender<ILoggingEvent>(); String filename = file.toAbsolutePath().toString(); if (!lc.isStarted()) { lc.start(); fileAppender.setFile(filename); fileAppender.setEncoder(ple); fileAppender.setContext(lc); fileAppender.start(); for (ch.qos.logback.classic.Logger log : lc.getLoggerList()) { if (log.getLevel() != null) { log.addAppender(fileAppender);
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; }
private void addModuleAppender() { final Thread thread = Thread.currentThread(); moduleAppender = new FileAppender<ILoggingEvent>() { @Override protected void subAppend(final ILoggingEvent event) { if (thread.equals(Thread.currentThread())) { super.subAppend(event); } } }; LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory(); moduleAppender.setContext(loggerContext); moduleAppender.setFile(new File(moduleArchiveDir, "module.log").getPath()); PatternLayoutEncoder encoder = new PatternLayoutEncoder(); encoder.setContext(loggerContext); encoder.setPattern("%date{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{35} - %msg%n"); encoder.start(); moduleAppender.setEncoder(encoder); moduleAppender.start(); // attach the rolling file appender to the logger of your choice ch.qos.logback.classic.Logger logbackLogger = loggerContext.getLogger(Logger.ROOT_LOGGER_NAME); logbackLogger.addAppender(moduleAppender); }
@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()); }
/** * Get the log file. * * @param logFileName The name of the log file * @return The actual file */ public static File getLogFile(final String logFileName) { if (logFileName == null) { throw new IllegalArgumentException("logFileName cannot be null."); } final LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory(); final Logger logger = lc.getLogger(Logger.ROOT_LOGGER_NAME); final Iterator<Appender<ILoggingEvent>> it = logger.iteratorForAppenders(); while (it.hasNext()) { final Appender<ILoggingEvent> appender = it.next(); if (appender instanceof FileAppender) { final FileAppender<ILoggingEvent> fileAppender = (FileAppender<ILoggingEvent>) appender; final File logFile = new File(fileAppender.getFile()); if (logFile.getName().equalsIgnoreCase(logFileName)) { return logFile; } } } return null; }
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; }
LoggerContext loggerContext = (LoggerContext) StaticLoggerBinder.getSingleton().getLoggerFactory(); Appender<ILoggingEvent> appender = loggerContext.getLogger(ROOT_LOGGER_NAME).getAppender("tasklogfile"); if (!(appender instanceof SiftingAppender)) { File file = new File(tempFileAppender.getFile()); tempFileAppender.stop(); // stop the appender to release file lock (windows) FileUtils.deleteQuietly(file);
/** * 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(); } }
private static List<String> getLogFiles(){ final List<String> logFileLocations = new ArrayList<>(); final LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory(); for (ch.qos.logback.classic.Logger logger : context.getLoggerList()) { for (Iterator<Appender<ILoggingEvent>> index = logger.iteratorForAppenders() ; index.hasNext() ;) { Appender<ILoggingEvent> appender = index.next(); if (appender instanceof FileAppender) { logFileLocations.add(((FileAppender<ILoggingEvent>) appender).getFile()); } } } return logFileLocations; } }