org.apache.log4j.FileAppender - java examples

Here are the examples of the java api org.apache.log4j.FileAppender taken from open source projects. By voting up you can indicate which examples are most useful and appropriate.

85 Examples 7

19 View Complete Implementation : AppStoreWrapper.java
Copyright GNU Lesser General Public License v3.0
Author : Impetus
public static void setAppender(String fileName, FileAppender appender) {
    AppStore.setObject(fileName, appender);
}

19 View Complete Implementation : RhnQueueJob.java
Copyright GNU General Public License v2.0
Author : spacewalkproject
private void logToNewFile() {
    PatternLayout pattern = new PatternLayout(DEFAULT_LOGGING_LAYOUT);
    try {
        getLogger().removeAllAppenders();
        FileAppender appender = new FileAppender(pattern, jobRun.buildStdOutputLogPath());
        getLogger().addAppender(appender);
    } catch (IOException e) {
        getLogger().warn("Logging to file disabled");
    }
}

18 View Complete Implementation : LogFileAppender.java
Copyright GNU General Public License v3.0
Author : movsim
/**
 * Logs to file "[output path]projectname.log".
 *
 * TTCC: Time Thread Category Component
 *
 * The first field is the number of milliseconds elapsed since the start of the program. The second field is the thread
 * making the log request. The third field is the level of the log statement. The fourth field is the name of the logger
 * replacedociated with the log request.
 * The text after the '-' is the message of the statement. Pattern=%r [%t] %-5p (%F:%M:%L) - %m%n
 *
 * @author Ralph Germ
 */
public clreplaced LogFileAppender {

    private static final Logger LOG = Logger.getLogger(LogFileAppender.clreplaced);

    private FileAppender fileAppender;

    public static void initialize(ProjectMetaData projectMetaData) {
        new LogFileAppender(projectMetaData);
    }

    /**
     * Initializes a FileAppender and adds the appender.
     *
     * View log4j.properties for defining logging levels for packages or to initialize other appenders like a rolling
     * file appender.
     *
     * Logs to file "[output path]projectname.log".
     */
    private LogFileAppender(ProjectMetaData projectMetaData) {
        Layout layout = new PatternLayout("%r [%t] %-5p (%F:%M:%L) - %m%n");
        try {
            final String filename = projectMetaData.getOutputPath() + File.separator + projectMetaData.getProjectName() + ".log";
            fileAppender = new FileAppender(layout, filename, false);
        } catch (IOException e) {
            e.printStackTrace();
        }
        LOG.addAppender(fileAppender);
    }
}

18 View Complete Implementation : BasicContext.java
Copyright GNU General Public License v2.0
Author : geonetwork
@Override
public void setAppender(FileAppender fa) {
    logger.setAppender(fa);
}

18 View Complete Implementation : LoggingConfig.java
Copyright Apache License 2.0
Author : Claudenw
public clreplaced LoggingConfig {

    public static ConsoleAppender getConsole() {
        if (LoggingConfig.console == null) {
            // create appender
            LoggingConfig.console = new ConsoleAppender();
            // configure the appender
            final String PATTERN = "%d [%p|%c|%C{1}] %m%n";
            LoggingConfig.console.setLayout(new PatternLayout(PATTERN));
            LoggingConfig.console.setThreshold(Level.INFO);
            LoggingConfig.console.activateOptions();
            // add appender to any Logger (here is root)
            Logger.getRootLogger().addAppender(LoggingConfig.console);
        }
        return LoggingConfig.console;
    }

    public static FileAppender getLog() {
        if (LoggingConfig.log == null) {
            LoggingConfig.log = new FileAppender();
            LoggingConfig.log.setName("FileLogger");
            LoggingConfig.log.setFile("/tmp/loggingConfig.log");
            LoggingConfig.log.setLayout(new PatternLayout("%d %-5p [%c{1}] %m%n"));
            LoggingConfig.log.setThreshold(Level.DEBUG);
            LoggingConfig.log.setAppend(true);
            LoggingConfig.log.activateOptions();
            Logger.getRootLogger().addAppender(LoggingConfig.log);
        }
        return LoggingConfig.log;
    }

    public static void setConsole(final Level level) {
        LoggingConfig.getConsole().setThreshold(level);
    }

    public static void setLog(final Level level) {
        LoggingConfig.getLog().setThreshold(level);
    }

    public static void setLogger(final Clreplaced<?> clazz, final Level level) {
        Logger.getLogger(clazz).setLevel(level);
    }

    public static void setLogger(final String name, final Level level) {
        Logger.getLogger(name).setLevel(level);
    }

    public static void setRootLogger(final Level level) {
        Logger.getRootLogger().setLevel(level);
    }

    private static ConsoleAppender console;

    private static FileAppender log;
}

18 View Complete Implementation : SccpHarness.java
Copyright GNU Affero General Public License v3.0
Author : RestComm
public synchronized void saveLogFile(String fileName) {
    try {
        PatternLayout pattern = new PatternLayout();
        pattern.setConversionPattern("%d %-5p [%c] (%t) %m%n");
        FileAppender fileAppender = new FileAppender(pattern, fileName);
        BasicConfigurator.configure(fileAppender);
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

17 View Complete Implementation : GridTestLog4jLogger.java
Copyright Apache License 2.0
Author : apache
/**
 * Adds file appender.
 *
 * @param a Appender.
 */
public static void addAppender(FileAppender a) {
    A.notNull(a, "a");
    fileAppenders.add(a);
}

17 View Complete Implementation : LogConfig.java
Copyright GNU General Public License v2.0
Author : geonetwork
/**
 * get last lines of log
 *
 * @author bmaire
 */
@Deprecated
@Controller("/log")
public clreplaced LogConfig {

    private static final String fileAppenderName = "fileAppender";

    private static final int maxLines = 20000;

    private FileAppender fileAppender = null;

    @PostConstruct
    public void init() throws Exception {
        isAppenderLogFileLoaded();
    }

    boolean isAppenderLogFileLoaded() {
        if (fileAppender == null || fileAppender.getFile() == null) {
            fileAppender = (FileAppender) Logger.getLogger(Geonet.GEONETWORK).getAppender(fileAppenderName);
            if (fileAppender == null) {
                fileAppender = (FileAppender) Logger.getLogger(Log.JEEVES).getAppender(fileAppenderName);
            }
            if (fileAppender == null) {
                Log.error(Geonet.GEONETWORK, "Error when getting appender named 'fileAppender'. " + "Check your log configuration file. " + "No appender found.");
                return false;
            } else {
                String logFileName = fileAppender.getFile();
                if (logFileName == null) {
                    Log.error(Geonet.GEONETWORK, "Error when getting logger file for the " + "appender named 'fileAppender'. " + "Check your log configuration file. " + "A FileAppender is required to return last activity to the user interface." + "Appender file not found.");
                    return false;
                }
            }
        }
        return true;
    }

    /**
     * Download the log file in a ZIP.
     */
    @RequestMapping(value = "/{portal}/{lang}/log/file", produces = { MediaType.APPLICATION_OCTET_STREAM_VALUE })
    @ResponseBody
    public void getLog(HttpServletResponse response) throws IOException {
        if (isAppenderLogFileLoaded()) {
            File file = new File(fileAppender.getFile());
            // create ZIP FILE
            String fname = String.valueOf(Calendar.getInstance().getTimeInMillis());
            // set headers for the response
            response.setContentType("application/zip");
            response.setContentLength((int) file.length());
            String headerKey = "Content-Disposition";
            String headerValue = String.format("attachment; filename=\"%s\"", "export-log-" + fname + ".zip");
            response.setHeader(headerKey, headerValue);
            int read = 0;
            byte[] bytes = new byte[1024];
            ZipOutputStream zos = null;
            ZipEntry ze;
            InputStream in = null;
            try {
                zos = new ZipOutputStream(response.getOutputStream());
                ze = new ZipEntry(file.getName());
                zos.putNextEntry(ze);
                in = new FileInputStream(file);
                while ((read = in.read(bytes)) != -1) {
                    zos.write(bytes, 0, read);
                }
            } finally {
                IOUtils.closeQuietly(in);
                if (zos != null)
                    zos.flush();
                IOUtils.closeQuietly(zos);
            }
        } else {
            throw new RuntimeException("No log file found for download. Check logger configuration.");
        }
    }

    /**
     * Return the last lines of the log file.
     *
     * @param lines Number of lines to return. Default 2000. Max number of lines returned 20000.
     */
    @RequestMapping(value = "/{portal}/{lang}/log/activity", produces = { MediaType.TEXT_PLAIN_VALUE })
    @ResponseBody
    public String activity(@RequestParam(value = "lines", required = false, defaultValue = "2000") int lines) {
        String lastActivity = null;
        if (isAppenderLogFileLoaded()) {
            lastActivity = FileUtil.readLastLines(new File(fileAppender.getFile()), Math.min(lines, maxLines));
        } else {
            throw new RuntimeException("No log file found. Check logger configuration.");
        }
        return lastActivity;
    }
}

17 View Complete Implementation : GridTestLog4jLogger.java
Copyright Apache License 2.0
Author : apache
/**
 * Removes file appender.
 *
 * @param a Appender.
 */
public static void removeAppender(FileAppender a) {
    A.notNull(a, "a");
    fileAppenders.remove(a);
}

17 View Complete Implementation : LoggingApi.java
Copyright GNU General Public License v2.0
Author : geonetwork
@RequestMapping(value = { "/{portal}/api/site/logging", "/{portal}/api/" + API.VERSION_0_1 + "/site/logging" })
@Api(value = API_CLreplaced_CATALOG_TAG, tags = API_CLreplaced_CATALOG_TAG, description = API_CLreplaced_CATALOG_OPS)
@Controller("logging")
@PreAuthorize("hasRole('Administrator')")
public clreplaced LoggingApi {

    private final String regexp = "log4j(-(.*?))?\\.xml";

    @Autowired
    GeonetworkDataDirectory dataDirectory;

    @ApiOperation(value = "Get log files", notes = "", nickname = "getLogFiles")
    @RequestMapping(produces = MediaType.APPLICATION_JSON_VALUE, method = RequestMethod.GET)
    @ResponseStatus(value = HttpStatus.OK)
    @ResponseBody
    public List<ListLogFilesResponse.LogFileResponse> getLogFiles(HttpServletRequest request) throws Exception {
        java.util.List<ListLogFilesResponse.LogFileResponse> logFileList = new ArrayList<>();
        String clreplacedesFolder = dataDirectory.getWebappDir() + "/WEB-INF/clreplacedes";
        File folder = new File(clreplacedesFolder);
        if (folder != null && folder.isDirectory()) {
            Pattern pattern = Pattern.compile(regexp, Pattern.CASE_INSENSITIVE);
            Matcher matcher;
            String fileName;
            for (File file : folder.listFiles()) {
                fileName = file.getName();
                matcher = pattern.matcher(fileName);
                if (matcher.matches()) {
                    String key = matcher.group(2);
                    if (StringUtils.isEmpty(key))
                        key = "prod";
                    logFileList.add(new ListLogFilesResponse.LogFileResponse(key.toUpperCase(), fileName));
                }
            }
        }
        return logFileList;
    }

    @ApiOperation(value = "Get last activity", notes = "", nickname = "getLastActivity")
    @RequestMapping(value = "/activity", method = RequestMethod.GET, produces = { MediaType.TEXT_PLAIN_VALUE })
    @ResponseBody
    public String getLastActivity(@ApiParam(value = "Number of lines to return", required = false) @RequestParam(value = "lines", required = false, defaultValue = "2000") int lines) {
        String lastActivity = null;
        if (isAppenderLogFileLoaded()) {
            lastActivity = FileUtil.readLastLines(new File(fileAppender.getFile()), Math.min(lines, maxLines));
        } else {
            throw new RuntimeException("No log file found. Check logger configuration.");
        }
        return lastActivity;
    }

    @ApiOperation(value = "Get last activity in a ZIP", notes = "", nickname = "getLastActivityIreplacedp")
    @RequestMapping(value = "/activity/zip", method = RequestMethod.GET, produces = { "application/zip" })
    @ResponseBody
    public void getLastActivityIreplacedp(HttpServletResponse response) throws IOException {
        if (isAppenderLogFileLoaded()) {
            File file = new File(fileAppender.getFile());
            // create ZIP FILE
            String fname = String.valueOf(Calendar.getInstance().getTimeInMillis());
            // set headers for the response
            response.setContentType("application/zip");
            response.setContentLength((int) file.length());
            String headerKey = "Content-Disposition";
            String headerValue = String.format("attachment; filename=\"catalog-log-%s-%s.zip\"", fname, new SimpleDateFormat("ddMMyyyyHHmmss").format(new Date()));
            response.setHeader(headerKey, headerValue);
            int read = 0;
            byte[] bytes = new byte[1024];
            ZipOutputStream zos = null;
            ZipEntry ze;
            InputStream in = null;
            try {
                zos = new ZipOutputStream(response.getOutputStream());
                ze = new ZipEntry(file.getName());
                zos.putNextEntry(ze);
                in = new FileInputStream(file);
                while ((read = in.read(bytes)) != -1) {
                    zos.write(bytes, 0, read);
                }
            } finally {
                IOUtils.closeQuietly(in);
                if (zos != null)
                    zos.flush();
                IOUtils.closeQuietly(zos);
            }
        } else {
            throw new RuntimeException("No log file found for download. Check logger configuration.");
        }
    }

    private static final String fileAppenderName = "fileAppender";

    private static final int maxLines = 20000;

    private FileAppender fileAppender = null;

    private boolean isAppenderLogFileLoaded() {
        if (fileAppender == null || fileAppender.getFile() == null) {
            // First, try the fileappender from the logger named "geonetwork"
            fileAppender = (FileAppender) Logger.getLogger(Geonet.GEONETWORK).getAppender(fileAppenderName);
            // If still not found, try the one from the logger named "jeeves"
            if (fileAppender == null) {
                fileAppender = (FileAppender) Logger.getLogger(Log.JEEVES).getAppender(fileAppenderName);
            }
            // Still null ? Give up
            if (fileAppender == null) {
                Log.error(Geonet.GEONETWORK, "Error when getting appender named 'fileAppender'. " + "Check your log configuration file. " + "No appender found.");
                return false;
            } else {
                String logFileName = fileAppender.getFile();
                // fileAppender found, but no file available ?
                if (logFileName == null) {
                    Log.error(Geonet.GEONETWORK, "Error when getting logger file for the " + "appender named 'fileAppender'. " + "Check your log configuration file. " + "A FileAppender is required to return last activity to the user interface." + "Appender file not found.");
                    return false;
                }
            }
        }
        return true;
    }
}

17 View Complete Implementation : LoggerInit.java
Copyright GNU General Public License v2.0
Author : takeseem
public static void initLogFromBizLog() {
    if (initOK) {
        return;
    }
    ClreplacedLoader cl = Thread.currentThread().getContextClreplacedLoader();
    Thread.currentThread().setContextClreplacedLoader(LoggerInit.clreplaced.getClreplacedLoader());
    try {
        // 使缺省的配置生效(Logger, Appender)
        PropertyConfigurator.configure(defaultProperties);
        /**
         * 找到上层应用在Root Logger上设置的FileAppender,以及HSF配置的FileAppender。
         * 目的是为了让HSF的日志与上层应用的日志输出到同一个目录。
         */
        FileAppender bizFileAppender = getFileAppender(Logger.getRootLogger());
        if (null == bizFileAppender) {
            log.warn("上层业务层没有在ROOT LOGGER上设置FileAppender!!!");
            bizFileAppender = new FileAppender();
            bizFileAppender.setFile(System.getProperty("user.home") + "/diamond/logs/diamond_config_data.log");
        }
        setFileAppender(bizFileAppender, LOG_NAME_CONFIG_DATA);
        initOK = true;
    } finally {
        Thread.currentThread().setContextClreplacedLoader(cl);
    }
}

17 View Complete Implementation : LoggerUtil.java
Copyright Apache License 2.0
Author : apache
private static boolean isErrorLevelEnable(FileAppender fileAppender) {
    if (fileAppender != null) {
        Level p = (Level) fileAppender.getThreshold();
        if (p == null) {
            p = LogManager.getRootLogger().getLevel();
        }
        if (p != null) {
            return Level.ERROR.isGreaterOrEqual(p);
        }
    }
    return false;
}

16 View Complete Implementation : GridTestLog4jLogger.java
Copyright Apache License 2.0
Author : apache
/**
 * Gets files for all registered file appenders.
 *
 * @return List of files.
 */
public static Collection<String> logFiles() {
    Collection<String> res = new ArrayList<>(fileAppenders.size());
    for (FileAppender a : fileAppenders) res.add(a.getFile());
    return res;
}

16 View Complete Implementation : Log4JLogger.java
Copyright Apache License 2.0
Author : apache
/**
 * {@inheritDoc}
 */
@Override
public void updateFilePath(IgniteClosure<String, String> filePathClos) {
    A.notNull(filePathClos, "filePathClos");
    for (FileAppender a : fileAppenders) {
        if (a instanceof Log4jFileAware) {
            ((Log4jFileAware) a).updateFilePath(filePathClos);
            a.activateOptions();
        }
    }
}

16 View Complete Implementation : Log4Java1Storage.java
Copyright Apache License 2.0
Author : HongZhaoHua
@Override
public synchronized void doAppend(LoggingEvent event) {
    Object[] parameters = (Object[]) event.getMessage();
    if (parameters.length != 2 + names.length) {
        throw new LogException("日志参数异常");
    }
    Instant instant = Instant.clreplaced.cast(parameters[0]);
    Object object = parameters[1];
    parameters = Arrays.copyOfRange(parameters, 2, parameters.length);
    if (StringUtility.isBlank(name)) {
        // 未指定日志名称,使用类名
        name = object.getClreplaced().getSimpleName();
    }
    String content;
    if (object == null) {
        content = StringUtility.EMPTY;
    } else {
        try {
            if (format == Format.CSV) {
                content = CsvUtility.object2String(object, object.getClreplaced());
            } else {
                content = JsonUtility.object2String(object);
            }
        } catch (Exception exception) {
            throw new LogException("日志转换异常", exception);
        }
    }
    FileAppender appender = log(instant, object, parameters);
    if (StringUtility.isBlank(content)) {
        // 忽略空行
        return;
    }
    try {
        MESSAGE_FIELD.set(event, content);
    } catch (Exception exception) {
        throw new LogException("日志设置异常", exception);
    }
    appender.doAppend(event);
}

16 View Complete Implementation : TestUtil.java
Copyright Apache License 2.0
Author : linkedin
public static void setupLogging(boolean logToConsole, String fileLogPath, Level logLevel) {
    PatternLayout defaultLayout = new PatternLayout("%d{ISO8601} [%t] (%p) {%c{1}} %m%n");
    Logger.getRootLogger().removeAllAppenders();
    if (logToConsole) {
        ConsoleAppender defaultAppender = new ConsoleAppender(defaultLayout);
        Logger.getRootLogger().addAppender(defaultAppender);
    }
    if (null != fileLogPath && 0 < fileLogPath.length()) {
        File logFile = new File(fileLogPath);
        if (null != logFile.getParentFile() && !logFile.getParentFile().exists()) {
            if (!logFile.getParentFile().mkdirs()) {
                Logger.getRootLogger().error("unable to create parent directory for log file: " + logFile);
            }
        }
        FileAppender fileAppender = null;
        try {
            fileAppender = new FileAppender(defaultLayout, fileLogPath);
        } catch (IOException io) {
            Logger.getRootLogger().error(io);
        }
        if (null != fileAppender)
            Logger.getRootLogger().addAppender(fileAppender);
    }
    Logger.getRootLogger().setLevel(logLevel);
}

16 View Complete Implementation : SquirrelLoggerFactory.java
Copyright Apache License 2.0
Author : realXuJiang
private void initialize(FileAppender fa, boolean doStartupLogging) {
    String configFileName = ApplicationArguments.getInstance().getLoggingConfigFileName();
    if (configFileName != null) {
        PropertyConfigurator.configure(configFileName);
    } else {
        Properties props = new Properties();
        props.setProperty("log4j.rootLogger", "debug, SquirrelAppender");
        props.setProperty("log4j.appender.SquirrelAppender", "net.sourceforge.squirrel_sql.client.SquirrelFileSizeRollingAppender");
        props.setProperty("log4j.appender.SquirrelAppender.layout", "org.apache.log4j.PatternLayout");
        props.setProperty("log4j.appender.SquirrelAppender.layout.ConversionPattern", "%d{ISO8601} [%t] %-5p %c %x - %m%n");
        PropertyConfigurator.configure(props);
    // Logger.getRootLogger().removeAllAppenders();
    // BasicConfigurator.configure(fa);
    // final ILogger log = createLogger(getClreplaced());
    // if (log.isInfoEnabled()) {
    // log.info("No logger configuration file preplaceded on command line arguments. Using default log file: "
    // + fa.getFile());
    // }
    }
    if (doStartupLogging) {
        doStartupLogging();
    }
}

16 View Complete Implementation : PreLaunchUpdateApplication.java
Copyright Apache License 2.0
Author : realXuJiang
private static void initializeLogger() throws IOException {
    String logConfigFileName = ApplicationArguments.getInstance().getLoggingConfigFileName();
    if (logConfigFileName != null) {
        PropertyConfigurator.configure(logConfigFileName);
    } else {
        ApplicationFiles appFiles = new ApplicationFiles();
        String logMessagePattern = "%-4r [%t] %-5p %c %x - %m%n";
        Layout layout = new PatternLayout(logMessagePattern);
        File logsDir = new File(appFiles.getUserSettingsDirectory(), "logs");
        File updateLogFile = new File(logsDir, "updater.log");
        FileAppender appender = new FileAppender(layout, updateLogFile.getAbsolutePath());
        LoggerController.registerLoggerFactory(new SquirrelLoggerFactory(appender, false));
    }
}

16 View Complete Implementation : AbstractBat.java
Copyright Apache License 2.0
Author : support-project
public static void initLogName(String logname) {
    Logger log = Logger.getRootLogger();
    FileAppender appendar = (FileAppender) log.getAppender("APP_FILEOUT");
    appendar.setFile(logname);
    // 変更の反映
    appendar.activateOptions();
}

16 View Complete Implementation : LoggerInit.java
Copyright GNU General Public License v2.0
Author : takeseem
static private FileAppender getFileAppender(Logger logger) {
    FileAppender fileAppender = null;
    for (Enumeration<?> appenders = logger.getAllAppenders(); (null == fileAppender) && appenders.hasMoreElements(); ) {
        Appender appender = (Appender) appenders.nextElement();
        if (FileAppender.clreplaced.isInstance(appender)) {
            fileAppender = (FileAppender) appender;
        }
    }
    return fileAppender;
}

16 View Complete Implementation : RhnJavaJob.java
Copyright GNU General Public License v2.0
Author : uyuni-project
void enableLogging(TaskoRun run) {
    PatternLayout pattern = new PatternLayout(DEFAULT_LOGGING_LAYOUT);
    try {
        getLogger().removeAllAppenders();
        FileAppender outLogAppender = new FileAppender(pattern, run.buildStdOutputLogPath());
        outLogAppender.setThreshold(Level.INFO);
        getLogger().addAppender(outLogAppender);
        FileAppender errLogAppender = new FileAppender(pattern, run.buildStdErrorLogPath());
        errLogAppender.setThreshold(Level.ERROR);
        getLogger().addAppender(errLogAppender);
    } catch (IOException e) {
        getLogger().warn("Logging to file disabled");
        e.printStackTrace();
    }
}

16 View Complete Implementation : AbstractRipper.java
Copyright MIT License
Author : 4pr0n
public void setup() throws IOException {
    setWorkingDir(this.url);
    Logger rootLogger = Logger.getRootLogger();
    FileAppender fa = (FileAppender) rootLogger.getAppender("FILE");
    if (fa != null) {
        fa.setFile(this.workingDir + File.separator + "log.txt");
        fa.activateOptions();
    }
    this.threadPool = new DownloadThreadPool();
}

16 View Complete Implementation : LoggerUtil.java
Copyright Apache License 2.0
Author : apache
public static LogFileInformation getLogFileInformation(Logger logger) {
    if (logger == null) {
        logger = LogManager.getRootLogger();
    }
    FileAppender fileAppender = getFileAppender(logger);
    if (fileAppender != null) {
        File logFile = new File(fileAppender.getFile());
        LogFileInformation logFileInfo = new LogFileInformation(fileAppender.getFile(), logFile.length());
        return logFileInfo;
    }
    return null;
}

16 View Complete Implementation : GridTestLog4jLogger.java
Copyright Apache License 2.0
Author : apache
/**
 * {@inheritDoc}
 */
@Nullable
@Override
public String fileName() {
    FileAppender fapp = F.first(fileAppenders);
    return fapp != null ? fapp.getFile() : null;
}

15 View Complete Implementation : FailFast.java
Copyright Apache License 2.0
Author : SeldonIO
public void run() {
    logger.info("Starting...");
    while (keepChecking) {
        try {
            if (!parentThread.isAlive()) {
                String msg = Thread.currentThread().getName() + ": Killing Process";
                System.out.println(msg);
                {
                    // Flush the file log appenders
                    Enumeration<?> appenders = logger.getAllAppenders();
                    while (appenders.hasMoreElements()) {
                        Appender appender = (Appender) appenders.nextElement();
                        if (appender instanceof FileAppender) {
                            FileAppender fileAppender = (FileAppender) appender;
                            fileAppender.setImmediateFlush(true);
                        }
                    }
                }
                logger.error(msg);
                System.exit(1);
            }
            // check every 10 secs
            Thread.sleep(10000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}

15 View Complete Implementation : CoasterService.java
Copyright Apache License 2.0
Author : swift-lang
private static void replaceAppender(FileAppender fa, AsyncAppender aa) {
    Logger root = Logger.getRootLogger();
    root.removeAppender(fa);
    root.addAppender(aa);
}

15 View Complete Implementation : CoasterService.java
Copyright Apache License 2.0
Author : swift-lang
public static void configureLogName() {
    FileAppender fa = (FileAppender) getFileAppender();
    if (fa != null) {
        fa.setFile(Bootstrap.LOG_DIR + File.separator + makeLogFileName());
        fa.activateOptions();
        AsyncAppender aa = new AsyncAppender();
        aa.addAppender(fa);
        replaceAppender(fa, aa);
    }
}

15 View Complete Implementation : LogFile.java
Copyright BSD 3-Clause "New" or "Revised" License
Author : amihaiemil
/**
 * Setup the Log4J logger. We do it programatically since the properties
 * file way is not thread-safe!<br>
 * Also, note that we have to create the file ourselves since FileAppender
 * acts funny under linux if the file doesn't already exist.
 * @param dir The directory where the file should be located.
 * @throws IOException If there's something wrong with the File.
 */
private void setup(final String dir) throws IOException {
    final String loggerName = "Action_" + this.id;
    final org.apache.log4j.Logger build = org.apache.log4j.Logger.getLogger(loggerName);
    final String logFilePath;
    if (dir == null) {
        logFilePath = "/" + this.id + ".log";
    } else {
        if (dir.endsWith("/")) {
            logFilePath = dir + this.id + ".log";
        } else {
            logFilePath = dir + "/" + this.id + ".log";
        }
    }
    final File logFile = new File(logFilePath);
    logFile.getParentFile().mkdirs();
    logFile.createNewFile();
    final FileAppender appender = new FileAppender(new PatternLayout("%d %p - %m%n"), logFilePath);
    appender.setName(this.id + "_appender");
    appender.setThreshold(Level.DEBUG);
    build.addAppender(appender);
    build.setLevel(Level.DEBUG);
    this.logger = LoggerFactory.getLogger(loggerName);
}

15 View Complete Implementation : GridTestLog4jLogger.java
Copyright Apache License 2.0
Author : apache
/**
 * {@inheritDoc}
 */
@Override
public void setNodeId(UUID nodeId) {
    A.notNull(nodeId, "nodeId");
    this.nodeId = nodeId;
    for (FileAppender a : fileAppenders) {
        if (a instanceof LoggerNodeIdAware) {
            ((LoggerNodeIdAware) a).setNodeId(nodeId);
            a.activateOptions();
        }
    }
}

15 View Complete Implementation : LogCreater.java
Copyright Apache License 2.0
Author : DarLiner
/**
 * @param logName
 *            log文件名称
 * @param logPath
 *            log路径
 * @param layout
 *            log布局
 * @param additivity
 *            子类appender是否集成父类appender
 * @param isDailyMode
 *            是否按天来记录
 * @return
 */
public static Logger createLogger(String logName, String logPath, PatternLayout layout, boolean additivity, boolean isDailyMode) {
    Logger createdLogger = Logger.getLogger(logName);
    try {
        String logFileName = null;
        if (StringUtils.isEmpty(logPath)) {
            logFileName = logName + ".log";
        } else if (logPath.endsWith("/")) {
            logFileName = logPath + logName + ".log";
        } else {
            logFileName = logPath + "/" + logName + ".log";
        }
        FileAppender fileAppender = null;
        if (isDailyMode) {
            fileAppender = new DailyRollingFileAppender(layout, logFileName, "'.'yyyy-MM-dd");
        } else {
            fileAppender = new RollingFileAppender(layout, logFileName, true);
            RollingFileAppender rollingAppender = (RollingFileAppender) fileAppender;
            rollingAppender.setMaxFileSize("200MB");
            rollingAppender.setMaxBackupIndex(5);
        }
        // do not need bufferedIO
        // fileAppender.setBufferedIO(true);
        // fileAppender.setBufferSize(8192);
        createdLogger = Logger.getLogger(logName);
        createdLogger.removeAllAppenders();
        createdLogger.setAdditivity(additivity);
        createdLogger.addAppender(fileAppender);
    } catch (Exception e) {
        throw new RuntimeException("create logger error", e);
    }
    return createdLogger;
}

15 View Complete Implementation : TestLog1.java
Copyright MIT License
Author : Feng14
public static void main(String[] args) {
    SimpleLayout layout = new SimpleLayout();
    FileAppender appender = null;
    try {
        appender = new FileAppender(layout, "d:/output1.txt", false);
    } catch (Exception e) {
    }
    logger.addAppender(appender);
    logger.setLevel((Level) Level.DEBUG);
    logger.debug("Here is some DEBUG");
    logger.info("Here is some INFO");
    logger.warn("Here is some WARN");
    logger.error("Here is some ERROR");
    logger.fatal("Here is some FATAL");
}

15 View Complete Implementation : PropertiesHelper.java
Copyright Apache License 2.0
Author : KnowledgeCaptureAndDiscovery
private static void addFileAppender(Logger logger, String id) {
    if (logger.getAppender(id) != null)
        return;
    String filename = getProposedLogFileName(id);
    try {
        FileAppender fileappender = new FileAppender(new SimpleLayout(), filename);
        fileappender.setAppend(false);
        fileappender.setName(id);
        logger.addAppender(fileappender);
    } catch (Exception e) {
        e.printStackTrace();
    }
}

15 View Complete Implementation : TestHelper.java
Copyright Apache License 2.0
Author : NGDATA
public static void setupFileLogging() throws IOException {
    init();
    final String LAYOUT = "[%t] %-5p %c - %m%n";
    FileAppender appender = new FileAppender();
    appender.setLayout(new PatternLayout(LAYOUT));
    // Maven sets a property basedir, but if the testcases are run outside Maven (e.g. by an IDE),
    // then fall back to the working directory
    String targetDir = System.getProperty("basedir");
    if (targetDir == null) {
        targetDir = System.getProperty("user.dir");
    }
    String logFileName = targetDir + "/target/log.txt";
    System.out.println("Log output will go to " + logFileName);
    appender.setFile(logFileName, false, false, 0);
    appender.activateOptions();
    ROOT_LOGGER.addAppender(appender);
}

15 View Complete Implementation : Action.java
Copyright BSD 3-Clause "New" or "Revised" License
Author : opencharles
/**
 * Setup the Log4J logger for this action thread.
 * @return String path to log file
 * @throws IOException If there's something wrong with the FileAppender.
 */
private void setupLog4jForAction() throws IOException {
    String loggerName = "Action_" + this.id;
    org.apache.log4j.Logger log4jLogger = org.apache.log4j.Logger.getLogger("Action_" + this.id);
    String logRoot = System.getProperty("LOG_ROOT");
    if (logRoot == null) {
        logRoot = ".";
    }
    String logFilePath = logRoot + "/charles-rest/ActionsLogs/" + this.id + ".log";
    File logFile = new File(logFilePath);
    logFile.getParentFile().mkdirs();
    // you have to create the file yourself since FileAppender acts funny under linux if the file doesn't already exist.
    logFile.createNewFile();
    FileAppender fa = new FileAppender(new PatternLayout("%d %p - %m%n"), logFilePath);
    fa.setName(this.id + "_appender");
    fa.setThreshold(Level.DEBUG);
    log4jLogger.addAppender(fa);
    log4jLogger.setLevel(Level.DEBUG);
    this.logger = LoggerFactory.getLogger(loggerName);
}

14 View Complete Implementation : FailedMessagesLogger.java
Copyright Apache License 2.0
Author : apache
/**
 * Get the root logger file location under which the failed log messages will be written.
 *
 * Since this clreplaced is used in Hooks which run within JVMs of other components like Hive,
 * we want to write the failed messages file under the same location as where logs from
 * the host component are saved. This method attempts to get such a location from the
 * root logger's appenders. It will work only if at least one of the appenders is a {@link FileAppender}
 *
 * @return directory under which host component's logs are stored.
 */
private String getRootLoggerDirectory() {
    String rootLoggerDirectory = null;
    Logger rootLogger = Logger.getRootLogger();
    Enumeration allAppenders = rootLogger.getAllAppenders();
    if (allAppenders != null) {
        while (allAppenders.hasMoreElements()) {
            Appender appender = (Appender) allAppenders.nextElement();
            if (appender instanceof FileAppender) {
                FileAppender fileAppender = (FileAppender) appender;
                String rootLoggerFile = fileAppender.getFile();
                rootLoggerDirectory = rootLoggerFile != null ? new File(rootLoggerFile).getParent() : null;
                break;
            }
        }
    }
    return rootLoggerDirectory;
}

14 View Complete Implementation : JackrabbitMain.java
Copyright Apache License 2.0
Author : apache
/**
 * Manages a Jackrabbit server instance.
 *
 * Copied and minimally changed from Jackrabbit's Main clreplaced in 1.5.2 to add a shutdown method.
 *
 * @since 2.1
 */
clreplaced JackrabbitMain {

    /**
     * @param args
     */
    public static void main(final String[] args) throws Exception {
        new JackrabbitMain(args).run();
    }

    private final Options options = new Options();

    private final CommandLine command;

    private final RequestLogHandler accessLog = new RequestLogHandler();

    private final WebAppContext webapp = new WebAppContext();

    private final Connector connector = new SocketConnector();

    private final Server server = new Server();

    private FileAppender jackrabbitAppender;

    private FileAppender jettyAppender;

    public JackrabbitMain(final String[] args) throws ParseException {
        options.addOption("?", "help", false, "print this message");
        options.addOption("n", "notice", false, "print copyright notices");
        options.addOption("l", "license", false, "print license information");
        options.addOption("q", "quiet", false, "disable console output");
        options.addOption("d", "debug", false, "enable debug logging");
        options.addOption("h", "host", true, "IP address of the HTTP server");
        options.addOption("p", "port", true, "TCP port of the HTTP server (8080)");
        options.addOption("f", "file", true, "location of this jar file");
        options.addOption("r", "repo", true, "repository directory (jackrabbit)");
        options.addOption("c", "conf", true, "repository configuration file");
        command = new GnuParser().parse(options, args);
    }

    private void copyToOutput(final String resource) throws IOException {
        final InputStream stream = JackrabbitMain.clreplaced.getResourcereplacedtream(resource);
        try {
            IOUtils.copy(stream, System.out);
        } finally {
            stream.close();
        }
    }

    private void message(final String message) {
        if (!command.hasOption("quiet")) {
            System.out.println(message);
        }
    }

    private void prepareAccessLog(final File log) {
        final NCSARequestLog ncsa = new NCSARequestLog(new File(log, "access.log.yyyy_mm_dd").getPath());
        ncsa.setFilenameDateFormat("yyyy-MM-dd");
        accessLog.setRequestLog(ncsa);
    }

    private void prepareConnector() {
        final String port = command.getOptionValue("port", "8080");
        connector.setPort(Integer.parseInt(port));
        final String host = command.getOptionValue("host");
        if (host != null) {
            connector.setHost(host);
        }
    }

    private void prepareServerLog(final File log) throws IOException {
        final Layout layout = new PatternLayout("%d{dd.MM.yyyy HH:mm:ss} *%-5p* %c{1}: %m%n");
        final Logger jackrabbitLog = Logger.getRootLogger();
        jackrabbitAppender = new FileAppender(layout, new File(log, "jackrabbit.log").getPath());
        jackrabbitAppender.setThreshold(Level.ALL);
        jackrabbitLog.addAppender(jackrabbitAppender);
        final Logger jettyLog = Logger.getLogger("org.mortbay.log");
        jettyAppender = new FileAppender(layout, new File(log, "jetty.log").getPath());
        jettyAppender.setThreshold(Level.ALL);
        jettyLog.addAppender(jettyAppender);
        jettyLog.setAdditivity(false);
        System.setProperty("derby.stream.error.file", new File(log, "derby.log").getPath());
    }

    private void prepareShutdown() {
        Runtime.getRuntime().addShutdownHook(new Thread() {

            @Override
            public void run() {
                try {
                    shutdown();
                } catch (final Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    private void prepareWebapp(final File file, final File repository, final File tmp) {
        webapp.setContextPath("/");
        webapp.setWar(file.getPath());
        webapp.setClreplacedLoader(JackrabbitMain.clreplaced.getClreplacedLoader());
        // we use a modified web.xml which has some servlets remove (which produce random empty directories)
        final URL res = getResource("/jcrweb.xml");
        if (res != null) {
            webapp.setDescriptor(res.toString());
        }
        webapp.setExtractWAR(false);
        webapp.setTempDirectory(tmp);
        final ServletHolder servlet = new ServletHolder(JackrabbitRepositoryServlet.clreplaced);
        servlet.setInitOrder(1);
        servlet.setInitParameter("repository.home", repository.getAbsolutePath());
        final String conf = command.getOptionValue("conf");
        if (conf != null) {
            servlet.setInitParameter("repository.config", conf);
        }
        webapp.addServlet(servlet, "/repository.properties");
    }

    /**
     * Try to load a resource with various clreplacedloaders.
     */
    private URL getResource(final String name) {
        URL res = Thread.currentThread().getContextClreplacedLoader().getResource(name);
        if (res == null) {
            res = getClreplaced().getResource(name);
        }
        // might be null
        return res;
    }

    public void run() throws Exception {
        String defaultFile = "jackrabbit-standalone.jar";
        final URL location = Main.clreplaced.getProtectionDomain().getCodeSource().getLocation();
        if (location != null && "file".equals(location.getProtocol())) {
            final File file = new File(location.getPath());
            if (file.isFile()) {
                defaultFile = location.getPath();
            }
        }
        final File file = new File(command.getOptionValue("file", defaultFile));
        if (command.hasOption("help")) {
            final HelpFormatter formatter = new HelpFormatter();
            formatter.printHelp("java -jar " + file.getName(), options, true);
        } else if (command.hasOption("notice")) {
            copyToOutput("/META-INF/NOTICE.txt");
        } else if (command.hasOption("license")) {
            copyToOutput("/META-INF/LICENSE.txt");
        } else {
            message("Welcome to Apache Jackrabbit!");
            message("-------------------------------");
            final File repository = new File(command.getOptionValue("repo", "target/test/jackrabbit"));
            message("Using repository directory " + repository);
            repository.mkdirs();
            final File tmp = new File(repository, "tmp");
            tmp.mkdir();
            final File log = new File(repository, "log");
            log.mkdir();
            message("Writing log messages to " + log);
            prepareServerLog(log);
            message("Starting the server...");
            prepareWebapp(file, repository, tmp);
            accessLog.setHandler(webapp);
            prepareAccessLog(log);
            server.setHandler(accessLog);
            prepareConnector();
            server.addConnector(connector);
            prepareShutdown();
            try {
                server.start();
                String host = connector.getHost();
                if (host == null) {
                    host = "localhost";
                }
                message("Apache Jackrabbit is now running at " + "http://" + host + ":" + connector.getPort() + "/");
            } catch (final Throwable t) {
                System.err.println("Unable to start the server: " + t.getMessage());
                System.exit(1);
            }
        }
    }

    public void shutdown() throws Exception, InterruptedException {
        message("Shutting down the server...");
        server.setGracefulShutdown(5);
        server.stop();
        Logger.getRootLogger().removeAppender(jackrabbitAppender);
        Logger.getLogger("org.mortbay.log").removeAppender(jettyAppender);
        jackrabbitAppender.close();
        jettyAppender.close();
        server.join();
        message("-------------------------------");
        message("Goodbye from Apache Jackrabbit!");
    }
}

14 View Complete Implementation : FailedMessagesLogger.java
Copyright Apache License 2.0
Author : apache
/**
 * Get the root logger file location under which the failed log messages will be written.
 *
 * Since this clreplaced is used in Hooks which run within JVMs of other components like Hive,
 * we want to write the failed messages file under the same location as where logs from
 * the host component are saved. This method attempts to get such a location from the
 * root logger's appenders. It will work only if at least one of the appenders is a {@link FileAppender}
 *
 * @return directory under which host component's logs are stored.
 */
private String getRootLoggerDirectory() {
    String rootLoggerDirectory = null;
    org.apache.log4j.Logger rootLogger = org.apache.log4j.Logger.getRootLogger();
    Enumeration allAppenders = rootLogger.getAllAppenders();
    if (allAppenders != null) {
        while (allAppenders.hasMoreElements()) {
            Appender appender = (Appender) allAppenders.nextElement();
            if (appender instanceof FileAppender) {
                FileAppender fileAppender = (FileAppender) appender;
                String rootLoggerFile = fileAppender.getFile();
                rootLoggerDirectory = new File(rootLoggerFile).getParent();
                break;
            }
        }
    }
    return rootLoggerDirectory;
}

14 View Complete Implementation : FileAppenderConfig.java
Copyright Apache License 2.0
Author : gallandarakhneorg
@Override
public Appender createAppender(String defaultLogFormat) {
    try {
        File outputFile = getFile();
        if (outputFile == null) {
            outputFile = new File(DEFAULT_FILE);
        }
        final FileAppender appender = new FileAppender(createLayout(defaultLogFormat), outputFile.getAbsolutePath(), getAppend());
        // $NON-NLS-1$
        appender.setName("file");
        appender.setEncoding(getEncoding());
        appender.setImmediateFlush(getImmediateFlush());
        if (getThreshold() != null) {
            appender.setThreshold(getThreshold().toLog4j());
        }
        return appender;
    } catch (IOException exception) {
        throw new IOError(exception);
    }
}

14 View Complete Implementation : CommandLine.java
Copyright MIT License
Author : iSECPartners
public static void main(String[] args) {
    Layout layout = new EnhancedPatternLayout("%r [%t] %p %c %M- %m%n");
    ConsoleAppender c = new org.apache.log4j.ConsoleAppender();
    c.setWriter(new PrintWriter(System.out));
    c.setLayout(layout);
    // Logger.getRootLogger().addAppender(c);
    try {
        FileAppender f = new org.apache.log4j.FileAppender(layout, "logs.txt");
        f.setLayout(layout);
        Logger.getRootLogger().addAppender(f);
    } catch (IOException e1) {
        LOGGER.error("could not get file appender: " + e1);
    }
    CommandLine cmdLine = new CommandLine();
    try {
        cmdLine.doMain(args);
        cmdLine.start();
        ShellFactory.createConsoleShell("ads>", "\n====================\n Welcome to ANDROID DEBUG SHELL\nType ?list for list of commands\n====================\n", cmdLine).commandLoop();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

14 View Complete Implementation : Ase.java
Copyright GNU Lesser General Public License v3.0
Author : molgenis
private static void startLogging(File logFile, boolean debugMode) {
    try {
        FileAppender logAppender = new FileAppender(new SimpleLayout(), logFile.getCanonicalPath(), false);
        Logger.getRootLogger().removeAllAppenders();
        Logger.getRootLogger().addAppender(logAppender);
        if (debugMode) {
            LOGGER.setLevel(Level.DEBUG);
        } else {
            LOGGER.setLevel(Level.INFO);
        }
    } catch (IOException e) {
        System.err.println("Failed to create logger: " + e.getMessage());
        System.exit(1);
    }
    LOGGER.info("\n" + HEADER);
    LOGGER.info("Version: " + VERSION);
    LOGGER.info("Current date and time: " + DATE_TIME_FORMAT.format(currentDataTime));
    LOGGER.info("Log level: " + LOGGER.getLevel());
    System.out.println("Started logging");
    System.out.println();
}

14 View Complete Implementation : Main.java
Copyright GNU Lesser General Public License v3.0
Author : molgenis
// get sample dosages
// 0,1,2   ....    1.5   1.4   1.33434
// imputation not sure .... in between aa ab bb
private static void startLogging(File logFile, boolean debugMode) {
    try {
        FileAppender logAppender = new FileAppender(new SimpleLayout(), logFile.getCanonicalPath(), false);
        Logger.getRootLogger().removeAllAppenders();
        Logger.getRootLogger().addAppender(logAppender);
        if (debugMode) {
            LOGGER.setLevel(Level.DEBUG);
        } else {
            LOGGER.setLevel(Level.INFO);
        }
    } catch (IOException e) {
        System.err.println("Failed to create logger: " + e.getMessage());
        System.exit(1);
    }
    LOGGER.info("\n" + HEADER);
    LOGGER.info("Version: " + VERSION);
    LOGGER.info("Current date and time: " + DATE_TIME_FORMAT.format(currentDataTime));
    LOGGER.info("Log level: " + LOGGER.getLevel());
    System.out.println("Started logging");
    System.out.println();
}

14 View Complete Implementation : RdfSClassGenerator.java
Copyright BSD 2-Clause "Simplified" License
Author : semweb4j
private void generateCode() throws MojoExecutionException, MojoFailureException {
    try {
        // make sure that directory for log file exists.
        rdfReactorLogfile.getParentFile().mkdirs();
        // configure logging infrastructure for RDFReactor
        FileAppender logFileAppender = new FileAppender(new SimpleLayout(), rdfReactorLogfile.getAbsolutePath());
        BasicConfigurator.configure(logFileAppender);
    } catch (IOException ioe) {
        throw new MojoExecutionException("Cannot open log file for writing RDFReactor log messages", ioe);
    }
    getLog().info("Generating code from RDF schema file " + schemaFile + " into dir " + outputDirectory + ". Clreplacedes will be in package " + packageName + " and with method prefix " + methodPrefix + ". skipBuiltins is " + skipBuiltins + ".");
    getLog().info("RDFReactor's log messages are written to " + rdfReactorLogfile);
    try {
        CodeGenerator.generate(schemaFile.getAbsolutePath(), outputDirectory.getAbsolutePath(), packageName, Reasoning.rdfs, skipBuiltins, methodPrefix);
    } catch (Exception e) {
        e.printStackTrace();
        throw new MojoFailureException(e, "RDFS processing error", "Could not generate code from the specified RDF schema file.");
    }
}

14 View Complete Implementation : LoggerInit.java
Copyright GNU General Public License v2.0
Author : takeseem
private static void setFileAppender(FileAppender bizFileAppender, String logName) {
    FileAppender fileAppender = getFileAppender(Logger.getLogger(logName));
    String bizLogDir = new File(bizFileAppender.getFile()).getParent();
    File newLogFile = new File(bizLogDir, fileAppender.getFile());
    fileAppender.setFile(newLogFile.getAbsolutePath());
    // 很重要,否则原有日志内容会被清空
    fileAppender.activateOptions();
    log.warn("成功为" + logName + "添加Appender. 输出路径:" + newLogFile.getAbsolutePath());
}

13 View Complete Implementation : LoggerUtil.java
Copyright Apache License 2.0
Author : apache
private static FileAppender getFileAppender(Logger logger) {
    Enumeration e = logger.getAllAppenders();
    FileAppender fileAppender = null;
    while (e.hasMoreElements()) {
        Object appender = e.nextElement();
        if (appender instanceof FileAppender) {
            if (fileAppender == null) {
                fileAppender = (FileAppender) appender;
            } else {
                // skip fetching log file information if we have multiple file Appenders
                fileAppender = null;
                break;
            }
        }
    }
    /*
     * We should return log file information only if,
     * we have single file Appender, the logging level of appender is set to level Error or above and immediateFlush is set to true.
     * In future we should be able to enhance this feature to support multiple file appenders.
     */
    if (fileAppender == null || !fileAppender.getImmediateFlush() || !fileAppender.isreplacedevereAsThreshold(Level.ERROR)) {
        LoggerUtil.logger.warn("Log information is unavailable. To enable log information log4j/logging should be configured with single FileAppender that has immediateFlush set to true and log level set to ERROR or greater.");
        return null;
    }
    return fileAppender;
}

13 View Complete Implementation : FlushableLogger.java
Copyright Apache License 2.0
Author : facebookarchive
/**
 * Set immediateFlush property for all file appenders.
 */
private synchronized void setFlush(boolean immediateFlush) {
    try {
        Set<FileAppender> flushedFileAppenders = new HashSet<FileAppender>();
        Enumeration<?> currentLoggers = LogManager.getLoggerRepository().getCurrentLoggers();
        while (currentLoggers.hasMoreElements()) {
            Object nextLogger = currentLoggers.nextElement();
            if (nextLogger instanceof Logger) {
                Logger currentLogger = (Logger) nextLogger;
                Enumeration<?> allAppenders = currentLogger.getParent().getAllAppenders();
                while (allAppenders.hasMoreElements()) {
                    Object nextElement = allAppenders.nextElement();
                    if (nextElement instanceof FileAppender) {
                        FileAppender fileAppender = (FileAppender) nextElement;
                        if (!flushedFileAppenders.contains(fileAppender)) {
                            flushedFileAppenders.add(fileAppender);
                            fileAppender.setImmediateFlush(immediateFlush);
                        }
                    }
                }
            }
        }
    } catch (Throwable e) {
        LOG.error("Failed flushing logs", e);
    }
}

13 View Complete Implementation : Log4Java1Storage.java
Copyright Apache License 2.0
Author : HongZhaoHua
private FileAppender log(Instant instant, Object object, Object... parameters) {
    String path = getPath(instant, object, parameters);
    FileAppender logger = cache.get(path);
    if (logger == null) {
        try {
            logger = new FileAppender(layout, path);
        } catch (IOException exception) {
            throw new LogException("日志记录异常", exception);
        }
        logger.activateOptions();
        cache.put(path, logger);
    } else {
        // TODO 此处应该不可能执行
        String file = logger.getFile();
        if (file == null || !file.equals(path)) {
            logger.setFile(path);
            logger.activateOptions();
        }
    }
    return logger;
}

13 View Complete Implementation : GadoCommandline.java
Copyright GNU Lesser General Public License v3.0
Author : molgenis
/**
 * @param args the command line arguments
 */
public static void main(String[] args) {
    System.out.println(HEADER);
    System.out.println();
    System.out.println("          --- Version: " + VERSION + " ---");
    System.out.println();
    System.out.println("More information: http://molgenis.org/systemsgenetics");
    System.out.println();
    Date currentDataTime = new Date();
    String startDateTime = DATE_TIME_FORMAT.format(currentDataTime);
    System.out.println("Current date and time: " + startDateTime);
    System.out.println();
    // flush to make sure header is before errors
    System.out.flush();
    try {
        // Allows flush to complete
        Thread.sleep(25);
    } catch (InterruptedException ex) {
    }
    GadoOptions options;
    if (args.length == 0) {
        GadoOptions.printHelp();
        return;
    }
    try {
        options = new GadoOptions(args);
    } catch (ParseException ex) {
        System.err.println("Error parsing commandline: " + ex.getMessage());
        GadoOptions.printHelp();
        return;
    }
    if (options.getLogFile().getParentFile() != null && !options.getLogFile().getParentFile().isDirectory()) {
        if (!options.getLogFile().getParentFile().mkdirs()) {
            System.err.println("Failed to create output folder: " + options.getLogFile().getParent());
            System.exit(1);
        }
    }
    try {
        FileAppender logFileAppender = new FileAppender(new SimpleLayout(), options.getLogFile().getCanonicalPath(), false);
        ConsoleAppender logConsoleInfoAppender = new ConsoleAppender(new InfoOnlyLogLayout());
        Logger.getRootLogger().removeAllAppenders();
        Logger.getRootLogger().addAppender(logFileAppender);
        LOGGER.info("DEPICT" + VERSION);
        LOGGER.info("Current date and time: " + startDateTime);
        Logger.getRootLogger().addAppender(logConsoleInfoAppender);
        if (options.isDebugMode()) {
            Logger.getRootLogger().setLevel(Level.DEBUG);
        } else {
            Logger.getRootLogger().setLevel(Level.INFO);
        }
    } catch (IOException e) {
        System.err.println("Failed to create logger: " + e.getMessage());
        System.exit(1);
    }
    options.printOptions();
    try {
        switch(options.getMode()) {
            case PROCESS:
                ProcessCaseHpo.process(options);
                break;
            case PRIORITIZE:
                HpoGenePrioritisation.prioritize(options);
                break;
        }
    } catch (IOException e) {
        System.err.println("Problem running mode: " + options.getMode());
        System.err.println("Error accessing input data: " + e.getMessage());
        System.err.println("See log file for stack trace");
        LOGGER.fatal("Error accessing input data: " + e.getMessage(), e);
        System.exit(1);
    } catch (IncompatibleMultiPartGenotypeDataException e) {
        System.err.println("Problem running mode: " + options.getMode());
        System.err.println("Error combining the impute genotype data files: " + e.getMessage());
        System.err.println("See log file for stack trace");
        LOGGER.fatal("Error combining the impute genotype data files: " + e.getMessage(), e);
        System.exit(1);
    } catch (GenotypeDataException e) {
        System.err.println("Problem running mode: " + options.getMode());
        System.err.println("Error reading genotype data: " + e.getMessage());
        System.err.println("See log file for stack trace");
        LOGGER.fatal("Error reading input data: " + e.getMessage(), e);
        System.exit(1);
    } catch (Exception e) {
        System.err.println("Problem running mode: " + options.getMode());
        System.err.println("Error message: " + e.getMessage());
        System.err.println("See log file for stack trace");
        LOGGER.fatal("Error: " + e.getMessage(), e);
        if (LOGGER.isDebugEnabled()) {
            e.printStackTrace();
        }
        System.exit(1);
    }
    LOGGER.info("replacedysis completed");
}

13 View Complete Implementation : GeneralItemAttributesImporter.java
Copyright Apache License 2.0
Author : SeldonIO
public void run(UrlFetcher urlFetcher) throws InterruptedException {
    boolean keepGoing = true;
    logger.info("Starting...");
    logger.info("opMode: " + opMode.toString());
    while (keepGoing) {
        logger.info("Processing recent urls...");
        int updates = 0;
        if (opMode == OperationMode.OPERATION_MODE_ITEM_IMPORTER) {
            updates = process_as_item_importer(urlFetcher);
        } else {
            updates = process_as_file_importer(urlFetcher);
        }
        logger.info("Processed with " + updates + " updates");
        if (opMode == OperationMode.OPERATION_MODE_FILE_IMPORTER) {
            keepGoing = false;
            logger.info("Processed urls...Finished");
            if (failFast != null) {
                // We are exiting normally so no need to check the main thread is going to die
                failFast.stopChecking();
            }
        } else {
            logger.info("Processed urls..sleeping...");
            Thread.sleep(intervalSecs * 1000);
        }
    }
    {
        // If we get here then we should terminate. Force the termination as sometimes when as file importer it hangs due to open connections
        logger.info("End of processing so terminating process.");
        {
            // Flush the file log appenders
            Enumeration<?> appenders = logger.getAllAppenders();
            while (appenders.hasMoreElements()) {
                Appender appender = (Appender) appenders.nextElement();
                if (appender instanceof FileAppender) {
                    FileAppender fileAppender = (FileAppender) appender;
                    fileAppender.setImmediateFlush(true);
                }
            }
        }
        // We've finished processing
        System.exit(0);
    }
}

13 View Complete Implementation : ScheduledBatchLogicCall.java
Copyright Apache License 2.0
Author : support-project
/**
 * テスト開始
 * @param args
 * @throws InterruptedException
 */
public static void main(String[] args) throws InterruptedException {
    String logsPath = AppConfig.get().getLogsPath();
    File logDir = new File(logsPath);
    if (!logDir.exists()) {
        logDir.mkdirs();
    }
    Logger log = Logger.getRootLogger();
    FileAppender appendar = (FileAppender) log.getAppender("APP_FILEOUT");
    File logfile = new File(logDir, "/batch.log");
    appendar.setFile(logfile.getAbsolutePath());
    // 変更の反映
    appendar.activateOptions();
    ScheduledBatchLogic logic = ScheduledBatchLogic.get();
    logic.scheduleInitialize();
    int count = 0;
    while (count < 10) {
        LOG.info("バッチが起動されるのを待ってます");
        Thread.sleep(1000 * 60);
        count++;
    }
    logic.scheduleDestroy();
}

13 View Complete Implementation : Logging.java
Copyright Apache License 2.0
Author : swift-lang
private static void setupLoggingToFile(Logger stcLogger, String logfile, boolean trace) {
    Layout layout = new PatternLayout("%-5p %m%n");
    boolean append = false;
    try {
        FileAppender appender = new FileAppender(layout, logfile, append);
        Level threshold;
        if (trace) {
            threshold = Level.TRACE;
        } else {
            threshold = Level.DEBUG;
        }
        appender.setThreshold(threshold);
        stcLogger.addAppender(appender);
        stcLogger.setLevel(threshold);
    } catch (IOException e) {
        System.out.println(e.getMessage());
        System.exit(ExitCode.ERROR_IO.code());
    }
}