Example usage for org.apache.commons.logging Log info

List of usage examples for org.apache.commons.logging Log info

Introduction

In this page you can find the example usage for org.apache.commons.logging Log info.

Prototype

void info(Object message);

Source Link

Document

Logs a message with info log level.

Usage

From source file:org.apache.hadoop.util.ReflectionUtils.java

/**
 * Log the current thread stacks at INFO level.
 * @param log the logger that logs the stack trace
 * @param title a descriptive title for the call stacks
 * @param minInterval the minimum time from the last 
 *///from   w ww.  ja  va 2 s  . c o m
public static void logThreadInfo(Log log, String title, long minInterval) {
    boolean dumpStack = false;
    if (log.isInfoEnabled()) {
        synchronized (ReflectionUtils.class) {
            long now = Time.now();
            if (now - previousLogTime >= minInterval * 1000) {
                previousLogTime = now;
                dumpStack = true;
            }
        }
        if (dumpStack) {
            ByteArrayOutputStream buffer = new ByteArrayOutputStream();
            printThreadInfo(new PrintWriter(buffer), title);
            log.info(buffer.toString());
        }
    }
}

From source file:org.apache.hadoop.util.StringUtils.java

/**
 * Print a log message for starting up and shutting down
 * @param clazz the class of the server// w ww  .j a v  a 2 s. com
 * @param args arguments
 * @param LOG the target log object
 */
public static void startupShutdownMessage(Class<?> clazz, String[] args,
        final org.apache.commons.logging.Log LOG) {
    final String hostname = getHostname();
    final String classname = clazz.getSimpleName();
    LOG.info(toStartupShutdownString("STARTUP_MSG: ",
            new String[] { "Starting " + classname, "  host = " + hostname, "  args = " + Arrays.asList(args),
                    "  version = " + VersionInfo.getVersion(),
                    "  build = " + VersionInfo.getUrl() + " -r " + VersionInfo.getRevision() + "; compiled by '"
                            + VersionInfo.getUser() + "' on " + VersionInfo.getDate() }));

    Runtime.getRuntime().addShutdownHook(new Thread() {
        public void run() {
            LOG.info(toStartupShutdownString("SHUTDOWN_MSG: ",
                    new String[] { "Shutting down " + classname + " at " + hostname }));
        }
    });
}

From source file:org.apache.hadoop.yarn.util.AdHocLogDumper.java

public void dumpLogs(String level, int timePeriod) throws YarnRuntimeException, IOException {
    synchronized (lock) {
        if (logFlag) {
            LOG.info("Attempt to dump logs when appender is already running");
            throw new YarnRuntimeException("Appender is already dumping logs");
        }//from   w ww .ja va 2  s .  com
        Level targetLevel = Level.toLevel(level);
        Log log = LogFactory.getLog(name);
        appenderLevels.clear();
        if (log instanceof Log4JLogger) {
            Logger packageLogger = ((Log4JLogger) log).getLogger();
            currentLogLevel = packageLogger.getLevel();
            Level currentEffectiveLevel = packageLogger.getEffectiveLevel();

            // make sure we can create the appender first
            Layout layout = new PatternLayout("%d{ISO8601} %p %c: %m%n");
            FileAppender fApp;
            File file = new File(System.getProperty("yarn.log.dir"), targetFilename);
            try {
                fApp = new FileAppender(layout, file.getAbsolutePath(), false);
            } catch (IOException ie) {
                LOG.warn("Error creating file, can't dump logs to " + file.getAbsolutePath(), ie);
                throw ie;
            }
            fApp.setName(AdHocLogDumper.AD_HOC_DUMPER_APPENDER);
            fApp.setThreshold(targetLevel);

            // get current threshold of all appenders and set it to the effective
            // level
            for (Enumeration appenders = Logger.getRootLogger().getAllAppenders(); appenders
                    .hasMoreElements();) {
                Object obj = appenders.nextElement();
                if (obj instanceof AppenderSkeleton) {
                    AppenderSkeleton appender = (AppenderSkeleton) obj;
                    appenderLevels.put(appender.getName(), appender.getThreshold());
                    appender.setThreshold(currentEffectiveLevel);
                }
            }

            packageLogger.addAppender(fApp);
            LOG.info("Dumping adhoc logs for " + name + " to " + file.getAbsolutePath() + " for " + timePeriod
                    + " milliseconds");
            packageLogger.setLevel(targetLevel);
            logFlag = true;

            TimerTask restoreLogLevel = new RestoreLogLevel();
            Timer restoreLogLevelTimer = new Timer();
            restoreLogLevelTimer.schedule(restoreLogLevel, timePeriod);
        }
    }
}

From source file:org.apache.hadoop.yarn.util.TestAdHocLogDumper.java

@Test
public void testDumpingSchedulerLogs() throws Exception {

    Map<Appender, Priority> levels = new HashMap<>();
    String logHierarchy = TestAdHocLogDumper.class.getName();
    String logFilename = "test.log";
    Log log = LogFactory.getLog(logHierarchy);
    if (log instanceof Log4JLogger) {
        for (Enumeration appenders = Logger.getRootLogger().getAllAppenders(); appenders.hasMoreElements();) {
            Object obj = appenders.nextElement();
            if (obj instanceof AppenderSkeleton) {
                AppenderSkeleton appender = (AppenderSkeleton) obj;
                levels.put(appender, appender.getThreshold());
            }/*w w  w  .jav a  2s.  c o  m*/
        }
    }

    AdHocLogDumper dumper = new AdHocLogDumper(logHierarchy, logFilename);
    dumper.dumpLogs("DEBUG", 1000);
    LOG.debug("test message 1");
    LOG.info("test message 2");
    File logFile = new File(logFilename);
    Assert.assertTrue(logFile.exists());
    Thread.sleep(2000);
    long lastWrite = logFile.lastModified();
    Assert.assertTrue(lastWrite < Time.now());
    Assert.assertTrue(logFile.length() != 0);

    // make sure levels are set back to their original values
    if (log instanceof Log4JLogger) {
        for (Enumeration appenders = Logger.getRootLogger().getAllAppenders(); appenders.hasMoreElements();) {
            Object obj = appenders.nextElement();
            if (obj instanceof AppenderSkeleton) {
                AppenderSkeleton appender = (AppenderSkeleton) obj;
                Assert.assertEquals(levels.get(appender), appender.getThreshold());
            }
        }
    }
    boolean del = logFile.delete();
    if (!del) {
        LOG.info("Couldn't clean up after test");
    }
}

From source file:org.apache.hupa.server.preferences.InImapUserPreferencesStorage.java

/**
 * Opens the IMAP folder and read messages until it founds the magic subject,
 * then gets the attachment which contains the data and return the serialized object stored.
 *///ww  w.  ja va  2s  .co  m
protected static Object readUserPreferencesFromIMAP(Log logger, User user, IMAPStore iStore, String folderName,
        String magicType) throws MessagingException, IOException, ClassNotFoundException {
    Folder folder = iStore.getFolder(folderName);
    if (folder.exists()) {
        if (!folder.isOpen()) {
            folder.open(Folder.READ_WRITE);
        }
        Message message = null;
        Message[] msgs = folder.getMessages();
        for (Message msg : msgs) {
            if (magicType.equals(msg.getSubject())) {
                message = msg;
                break;
            }
        }
        if (message != null) {
            Object con = message.getContent();
            if (con instanceof Multipart) {
                Multipart mp = (Multipart) con;
                for (int i = 0; i < mp.getCount(); i++) {
                    BodyPart part = mp.getBodyPart(i);
                    if (part.getContentType().toLowerCase().startsWith(HUPA_DATA_MIME_TYPE)) {
                        ObjectInputStream ois = new ObjectInputStream(part.getInputStream());
                        Object o = ois.readObject();
                        ois.close();
                        logger.info("Returning user preferences of type " + magicType + " from imap folder + "
                                + folderName + " for user " + user);
                        return o;
                    }
                }
            }
        }
    }
    return null;
}

From source file:org.apache.hupa.server.preferences.InImapUserPreferencesStorage.java

/**
 * Opens the IMAP folder, deletes all messages which match the magic subject and
 * creates a new message with an attachment which contains the object serialized
 *///w w w  . jav  a  2s.c  om
protected static void saveUserPreferencesInIMAP(Log logger, User user, Session session, IMAPStore iStore,
        String folderName, String subject, Object object)
        throws MessagingException, IOException, InterruptedException {
    IMAPFolder folder = (IMAPFolder) iStore.getFolder(folderName);

    if (folder.exists() || folder.create(IMAPFolder.HOLDS_MESSAGES)) {
        if (!folder.isOpen()) {
            folder.open(Folder.READ_WRITE);
        }

        // Serialize the object
        ByteArrayOutputStream fout = new ByteArrayOutputStream();
        ObjectOutputStream oos = new ObjectOutputStream(fout);
        oos.writeObject(object);
        oos.close();
        ByteArrayInputStream is = new ByteArrayInputStream(fout.toByteArray());

        // Create a new message with an attachment which has the serialized object
        MimeMessage message = new MimeMessage(session);
        message.setSubject(subject);

        Multipart multipart = new MimeMultipart();
        MimeBodyPart txtPart = new MimeBodyPart();
        txtPart.setContent("This message contains configuration used by Hupa, do not delete it", "text/plain");
        multipart.addBodyPart(txtPart);
        FileItem item = createPreferencesFileItem(is, subject, HUPA_DATA_MIME_TYPE);
        multipart.addBodyPart(MessageUtils.fileitemToBodypart(item));
        message.setContent(multipart);
        message.saveChanges();

        // It seems it's not possible to modify the content of an existing message using the API
        // So I delete the previous message storing the preferences and I create a new one
        Message[] msgs = folder.getMessages();
        for (Message msg : msgs) {
            if (subject.equals(msg.getSubject())) {
                msg.setFlag(Flag.DELETED, true);
            }
        }

        // It is necessary to copy the message before saving it (the same problem in AbstractSendMessageHandler)
        message = new MimeMessage((MimeMessage) message);
        message.setFlag(Flag.SEEN, true);
        folder.appendMessages(new Message[] { message });
        folder.close(true);
        logger.info("Saved preferences " + subject + " in imap folder " + folderName + " for user " + user);
    } else {
        logger.error("Unable to save preferences " + subject + " in imap folder " + folderName + " for user "
                + user);
    }
}

From source file:org.apache.james.transport.mailets.jsieve.delivery.SieveExecutor.java

protected boolean sieveMessage(MailAddress recipient, Mail aMail, Log log) throws MessagingException {
    try {/*from   ww  w .j  a  va2 s.c  om*/
        ResourceLocator.UserSieveInformation userSieveInformation = resourceLocator.get(recipient);
        sieveMessageEvaluate(recipient, aMail, userSieveInformation, log);
        return true;
    } catch (ScriptNotFoundException e) {
        log.info("Can not locate SIEVE script for user " + recipient.asPrettyString());
        return false;
    } catch (Exception ex) {
        log.error("Cannot evaluate Sieve script for user " + recipient.asPrettyString(), ex);
        return false;
    }
}

From source file:org.apache.jsieve.ScriptCoordinate.java

/**
 * Logs diagnotic information about the script coordinate.
 * //www.  j  av a2 s  . co  m
 * @param logger
 *            <code>Log</code>, not null
 */
public void logDiagnosticsInfo(Log logger) {
    if (logger.isInfoEnabled()) {
        logger.info("Expression starts line " + startLineNumber + " column " + startColumnNumber);
        logger.info("Expression ends line " + endLineNumber + " column " + endColumnNumber);
    }
}

From source file:org.apache.logging.log4j.jcl.CallerInformationTest.java

@Test
public void testClassLogger() throws Exception {
    final ListAppender app = ctx.getListAppender("Class").clear();
    final Log logger = LogFactory.getLog("ClassLogger");
    logger.info("Ignored message contents.");
    logger.warn("Verifying the caller class is still correct.");
    logger.error("Hopefully nobody breaks me!");
    final List<String> messages = app.getMessages();
    assertEquals("Incorrect number of messages.", 3, messages.size());
    for (final String message : messages) {
        assertEquals("Incorrect caller class name.", this.getClass().getName(), message);
    }/*from  w  w w. ja v  a  2 s .  c  o  m*/
}

From source file:org.apache.logging.log4j.jcl.CallerInformationTest.java

@Test
public void testMethodLogger() throws Exception {
    final ListAppender app = ctx.getListAppender("Method").clear();
    final Log logger = LogFactory.getLog("MethodLogger");
    logger.info("More messages.");
    logger.warn("CATASTROPHE INCOMING!");
    logger.error("ZOMBIES!!!");
    logger.warn("brains~~~");
    logger.info("Itchy. Tasty.");
    final List<String> messages = app.getMessages();
    assertEquals("Incorrect number of messages.", 5, messages.size());
    for (final String message : messages) {
        assertEquals("Incorrect caller method name.", "testMethodLogger", message);
    }/*from   w w  w  . ja v  a 2 s . c o m*/
}