Search in sources :

Example 61 with Appender

use of org.apache.log4j.Appender in project apex-core by apache.

the class LoggerUtilTest method testAndRemoveAppender.

private static void testAndRemoveAppender(String name) {
    Appender appender = org.apache.log4j.Logger.getRootLogger().getAppender(name);
    assertNotNull(appender);
    assertTrue(LoggerUtil.getAppendersNames().contains(name));
    LoggerUtil.removeAppender(name);
    assertNull(org.apache.log4j.Logger.getRootLogger().getAppender(name));
}
Also used : Appender(org.apache.log4j.Appender) ConsoleAppender(org.apache.log4j.ConsoleAppender)

Example 62 with Appender

use of org.apache.log4j.Appender in project voltdb by VoltDB.

the class VoltLog4jLogger method setFileLoggerRoot.

/**
     * Static method to change the log directory root
     * @param logRootDH log directory root
     */
public static void setFileLoggerRoot(File logRootDH) {
    if (System.getProperty("log4j.configuration", "").toLowerCase().contains("/voltdb/tests/")) {
        return;
    }
    if (Boolean.parseBoolean(System.getProperty("DISABLE_LOG_RECONFIGURE", "false"))) {
        return;
    }
    checkArgument(logRootDH != null, "log root directory is null");
    File logDH = new File(logRootDH, "log");
    File napFH = new File(logDH, "volt.log");
    Logger rootLogger = LogManager.getRootLogger();
    DailyRollingFileAppender oap = null;
    @SuppressWarnings("unchecked") Enumeration<Appender> appen = rootLogger.getAllAppenders();
    while (appen.hasMoreElements()) {
        Appender appndr = appen.nextElement();
        if (!(appndr instanceof DailyRollingFileAppender))
            continue;
        oap = (DailyRollingFileAppender) appndr;
        File logFH = new File(oap.getFile());
        if (!logFH.isAbsolute())
            break;
        oap = null;
    }
    if (oap == null) {
        return;
    }
    DailyRollingFileAppender nap = null;
    try {
        if (!logDH.exists() && !logDH.mkdirs()) {
            throw new IllegalArgumentException("failed to create directory " + logDH);
        }
        if (!logDH.isDirectory() || !logDH.canRead() || !logDH.canWrite() || !logDH.canExecute()) {
            throw new IllegalArgumentException("Cannot access " + logDH);
        }
        nap = new DailyRollingFileAppender(oap.getLayout(), napFH.getPath(), oap.getDatePattern());
    } catch (IOException e) {
        throw new IllegalArgumentException("Failed to instantiate a DailyRollingFileAppender for file " + napFH, e);
    }
    nap.setName(oap.getName());
    rootLogger.removeAppender(oap.getName());
    rootLogger.addAppender(nap);
    File oldFH = new File(oap.getFile());
    if (oldFH.exists() && oldFH.isFile() && oldFH.length() == 0L && oldFH.delete()) {
        File oldDH = oldFH.getParentFile();
        if (oldDH.list().length == 0) {
            oldDH.delete();
        }
    }
    @SuppressWarnings("unchecked") Enumeration<Logger> e = LogManager.getCurrentLoggers();
    while (e.hasMoreElements()) {
        Logger lgr = e.nextElement();
        Appender apndr = lgr.getAppender(oap.getName());
        if (apndr != null) {
            lgr.removeAppender(oap.getName());
            lgr.addAppender(nap);
        }
    }
}
Also used : DailyRollingFileAppender(org.apache.log4j.DailyRollingFileAppender) Appender(org.apache.log4j.Appender) IOException(java.io.IOException) CoreVoltLogger(org.voltcore.logging.VoltLogger.CoreVoltLogger) Logger(org.apache.log4j.Logger) File(java.io.File) DailyRollingFileAppender(org.apache.log4j.DailyRollingFileAppender)

Example 63 with Appender

use of org.apache.log4j.Appender in project ignite by apache.

the class GridCacheAbstractLoadTest method configuration.

/**
 * Initializes configurations.
 *
 * @param springCfgPath Configuration file path.
 * @param log Log file name.
 * @return Configuration.
 * @throws IgniteCheckedException If fails.
 */
@SuppressWarnings("unchecked")
protected IgniteConfiguration configuration(String springCfgPath, String log) throws IgniteCheckedException {
    File path = GridTestUtils.resolveIgnitePath(springCfgPath);
    if (path == null)
        throw new IgniteCheckedException("Spring XML configuration file path is invalid: " + new File(springCfgPath) + ". Note that this path should be either absolute path or a relative path to IGNITE_HOME.");
    if (!path.isFile())
        throw new IgniteCheckedException("Provided file path is not a file: " + path);
    // Add no-op logger to remove no-appender warning.
    Appender app = new NullAppender();
    Logger.getRootLogger().addAppender(app);
    ApplicationContext springCtx;
    try {
        springCtx = new FileSystemXmlApplicationContext(path.toURI().toURL().toString());
    } catch (BeansException | MalformedURLException e) {
        throw new IgniteCheckedException("Failed to instantiate Spring XML application context: " + e.getMessage(), e);
    }
    Map cfgMap;
    try {
        // Note: Spring is not generics-friendly.
        cfgMap = springCtx.getBeansOfType(IgniteConfiguration.class);
    } catch (BeansException e) {
        throw new IgniteCheckedException("Failed to instantiate bean [type=" + IgniteConfiguration.class + ", err=" + e.getMessage() + ']', e);
    }
    if (cfgMap == null)
        throw new IgniteCheckedException("Failed to find a single grid factory configuration in: " + path);
    // Remove previously added no-op logger.
    Logger.getRootLogger().removeAppender(app);
    if (cfgMap.isEmpty())
        throw new IgniteCheckedException("Can't find grid factory configuration in: " + path);
    else if (cfgMap.size() > 1)
        throw new IgniteCheckedException("More than one configuration provided for cache load test: " + cfgMap.values());
    IgniteConfiguration cfg = (IgniteConfiguration) cfgMap.values().iterator().next();
    cfg.setGridLogger(initLogger(log));
    cfg.getTransactionConfiguration().setDefaultTxIsolation(isolation);
    cfg.getTransactionConfiguration().setDefaultTxConcurrency(concurrency);
    return cfg;
}
Also used : NullAppender(org.apache.log4j.varia.NullAppender) Appender(org.apache.log4j.Appender) ConsoleAppender(org.apache.log4j.ConsoleAppender) RollingFileAppender(org.apache.log4j.RollingFileAppender) FileSystemXmlApplicationContext(org.springframework.context.support.FileSystemXmlApplicationContext) FileSystemXmlApplicationContext(org.springframework.context.support.FileSystemXmlApplicationContext) ApplicationContext(org.springframework.context.ApplicationContext) MalformedURLException(java.net.MalformedURLException) IgniteCheckedException(org.apache.ignite.IgniteCheckedException) IgniteConfiguration(org.apache.ignite.configuration.IgniteConfiguration) NullAppender(org.apache.log4j.varia.NullAppender) File(java.io.File) Map(java.util.Map) BeansException(org.springframework.beans.BeansException)

Example 64 with Appender

use of org.apache.log4j.Appender in project ignite by apache.

the class Log4JLogger method addConsoleAppenderIfNeeded.

/**
 * Adds console appender when needed with some default logging settings.
 *
 * @param logLevel Optional log level.
 * @param implInitC Optional log implementation init closure.
 */
private void addConsoleAppenderIfNeeded(@Nullable Level logLevel, @Nullable IgniteClosure<Boolean, Logger> implInitC) {
    if (inited) {
        if (implInitC != null)
            // Do not init.
            impl = implInitC.apply(false);
        return;
    }
    synchronized (mux) {
        if (inited) {
            if (implInitC != null)
                // Do not init.
                impl = implInitC.apply(false);
            return;
        }
        if (implInitC != null)
            // Init logger impl.
            impl = implInitC.apply(true);
        boolean quiet = Boolean.valueOf(System.getProperty(IGNITE_QUIET, "true"));
        boolean consoleAppenderFound = false;
        Category rootCategory = null;
        ConsoleAppender errAppender = null;
        for (Category l = impl; l != null; ) {
            if (!consoleAppenderFound) {
                for (Enumeration appenders = l.getAllAppenders(); appenders.hasMoreElements(); ) {
                    Appender appender = (Appender) appenders.nextElement();
                    if (appender instanceof ConsoleAppender) {
                        if ("CONSOLE_ERR".equals(appender.getName())) {
                            // Treat CONSOLE_ERR appender as a system one and don't count it.
                            errAppender = (ConsoleAppender) appender;
                            continue;
                        }
                        consoleAppenderFound = true;
                        break;
                    }
                }
            }
            if (l.getParent() == null) {
                rootCategory = l;
                break;
            } else
                l = l.getParent();
        }
        if (consoleAppenderFound && quiet)
            // User configured console appender, but log is quiet.
            quiet = false;
        if (!consoleAppenderFound && !quiet && Boolean.valueOf(System.getProperty(IGNITE_CONSOLE_APPENDER, "true"))) {
            // Console appender not found => we've looked through all categories up to root.
            assert rootCategory != null;
            // to configuration and did not set IGNITE_CONSOLE_APPENDER to false.
            if (errAppender != null) {
                rootCategory.addAppender(createConsoleAppender(Level.INFO));
                if (errAppender.getThreshold() == Level.ERROR)
                    errAppender.setThreshold(Level.WARN);
            } else
                // No error console appender => create console appender with no level limit.
                rootCategory.addAppender(createConsoleAppender(Level.OFF));
            if (logLevel != null)
                impl.setLevel(logLevel);
        }
        // If still don't have appenders, disable logging.
        if (!isConfigured())
            impl.setLevel(Level.OFF);
        quiet0 = quiet;
        inited = true;
    }
}
Also used : ConsoleAppender(org.apache.log4j.ConsoleAppender) Appender(org.apache.log4j.Appender) ConsoleAppender(org.apache.log4j.ConsoleAppender) FileAppender(org.apache.log4j.FileAppender) Category(org.apache.log4j.Category) Enumeration(java.util.Enumeration)

Example 65 with Appender

use of org.apache.log4j.Appender in project leopard by tanhaichao.

the class LogDaoLog4jImpl method addAppender.

private void addAppender(Logger logger, Level level, String filename, boolean bufferedIO) {
    org.apache.log4j.Level log4jLevel = toLog4jLevel(level);
    Appender appender = this.getAppender(filename, log4jLevel, bufferedIO);
    logger.setLevel(log4jLevel);
    logger.addAppender(appender);
}
Also used : Appender(org.apache.log4j.Appender)

Aggregations

Appender (org.apache.log4j.Appender)73 FileAppender (org.apache.log4j.FileAppender)24 Logger (org.apache.log4j.Logger)20 File (java.io.File)12 ConsoleAppender (org.apache.log4j.ConsoleAppender)11 RollingFileAppender (org.apache.log4j.RollingFileAppender)11 WriterAppender (org.apache.log4j.WriterAppender)11 NullAppender (org.apache.log4j.varia.NullAppender)11 PatternLayout (org.apache.log4j.PatternLayout)9 Log4JLogger (org.apache.commons.logging.impl.Log4JLogger)8 Enumeration (java.util.Enumeration)7 Test (org.junit.Test)7 IOException (java.io.IOException)6 AsyncAppender (org.apache.log4j.AsyncAppender)6 Layout (org.apache.log4j.Layout)6 LogfileAppender (org.knime.core.util.LogfileAppender)6 DailyRollingFileAppender (org.apache.log4j.DailyRollingFileAppender)5 Filter (org.apache.log4j.spi.Filter)5 LevelRangeFilter (org.apache.log4j.varia.LevelRangeFilter)5 ActiveDbAppender (com.axway.ats.log.appenders.ActiveDbAppender)4