List of usage examples for org.apache.commons.logging Log info
void info(Object message);
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*/ }