private ILogManager resolveLogManager(ILogManager configLogManager) { ILogManager lm = configLogManager; if (lm == null) { lm = new FileLogManager(workdir); } LOG.info("JEF log manager is : " + lm.getClass().getSimpleName()); return lm; } private IJobStatusStore resolveJobStatusStore(
@Override public final InputStream getLog(final String suiteId) throws IOException { File logFile = getLogFile(suiteId); if (logFile != null && logFile.exists()) { return new FileInputStream(logFile); } return null; } @Override
@Override public final void backup(final String suiteId, final Date backupDate) throws IOException { resolveDirsIfNeeded(); String date = new SimpleDateFormat( "yyyyMMddHHmmssSSSS").format(backupDate); File progressFile = getLogFile(suiteId); File backupDir = FileUtil.createDateDirs( new File(logdirBackupBase), backupDate); backupDir = new File(backupDir, "logs"); if (!backupDir.exists()) { try { FileUtils.forceMkdir(backupDir); } catch (IOException e) { throw new JEFException("Cannot create backup directory: " + backupDir, e); } } File backupFile = new File( backupDir + "/" + date + "__" + FileUtil.toSafeFileName(suiteId) + LOG_SUFFIX); if (progressFile.exists()) { FileUtil.moveFile(progressFile, backupFile); } }
/** * Gets the log file used by this log manager. * @param suiteId log file suiteId * @return log file */ public File getLogFile(final String suiteId) { if (suiteId == null) { return null; } resolveDirsIfNeeded(); return new File(logdirLatest + "/" + FileUtil.toSafeFileName(suiteId) + LOG_SUFFIX); }
@Override public void loadFromXML(Reader in) throws IOException { XMLConfiguration xml = XMLConfigurationUtil.newXMLConfiguration(in); setLogDirectory(xml.getString("logDir", logdir)); }
@Override public final Appender createAppender(final String suiteId) throws IOException { resolveDirsIfNeeded(); return new FileAppender(new PatternLayout(LAYOUT_PATTERN), logdirLatest + "/" + FileUtil.toSafeFileName(suiteId) + LOG_SUFFIX); }
suiteConfig.setLogManager(new FileLogManager(collConfig.getLogsDir())); suiteConfig.setJobStatusStore( new FileJobStatusStore(collConfig.getProgressDir()));