Java log code example

Source: Internet
Author: User

Java log exampleLogrecord filterimport java. util. logging. filter; import java. util. logging. level; import java. util. logging. logRecord; import java. util. logging. logger; public class SimpleFilter {private static Logger logger = Logger. getLogger ("SimpleFilter"); static class Duck {}; static class Wombat {}; static void sendLogMessages () {logger. log (Level. WARNING, "Aduck in the house! ", New Duck (); logger. log (Level. WARNING," A Wombat at large! ", NewWombat ();} public static void main (String [] args) {sendLogMessages (); logger. setFilter (newFilter () {public boolean isLoggable (LogRecord record) {Object [] params = record. getParameters (); if (params = null) return true; // No parameters if (record. getParameters () [0] instanceof Duck) return true; // Only log Ducks return false ;}}); logger.info ("After setting filter .. "); sendLogMessages ();} Output: Aug 28,2013 11:46:04 AM SimpleFilter sendLogMessagesWARNING: A duck in the house! Aug 28,2013 11:46:04 AM SimpleFilter sendLogMessagesWARNING: A Wombat at large! Aug 28,2013 11:46:04 AM SimpleFilter mainINFO: After setting filter .. Aug 28,2013 11:46:04 AM SimpleFilter sendLogMessagesWARNING: A duck in the house! Note: The isLoggable method can be used to filter logrecord objects. 2. simple for Formatter Exampleimport java. util. logging. consoleHandler; import java. util. logging. formatter; import java. util. logging. handler; import java. util. logging. logRecord; import java. util. logging. logger; public class SimpleFormatterExample {private static Logger logger = Logger. getLogger ("SimpleFormatterExample"); private static void logMessages () {logger.info ("Line One"); logger.info ("Line Tw ") O ");} public static void main (String [] args) {logger. setUseParentHandlers (false); Handler conHdlr = new ConsoleHandler (); conHdlr. setFormatter (new Formatter () {public String format (LogRecord record) {return record. getLevel () + ":" + record. getSourceClassName () + "-:-" + record. getSourceMethodName () + "-:-" + record. getMessage () + "\ n" ;}}); logger. addHandler (conHdlr); logMessages () ;}} O Utput: INFO: SimpleFormatterExample-:-logMessages-:-Line OneINFO: SimpleFormatterExample-:-logMessages-:-Line Two Note: You can format the output log format. 3. format log output by overriding tostring () function, import java. util. logging. level; import java. util. logging. logRecord; public class PrintableLogRecord extends LogRecord {public PrintableLogRecord (Level level, String str) {super (level, str);} public StringtoString () {String result = "Level <" + getLevel () + "> \ n" + "LoggerName <" + getLoggerName () + "> \ n" + "Message <" + getMessage () + "> \ n" + "CurrentMillis <" + getMillis () + "> \ n" + "Params"; Object [] objParams = getParameters (); if (objParams = null) result + = "<null> \ n "; else for (int I = 0; I <objParams. length; I ++) result + = "Param # <" + I + "value" + objParams [I]. toString () + "> \ n"; result + = "ResourceBundle <" + getResourceBundle () + "> \ nResourceBundleName <" + getResourceBundleName () + "> \ nSequenceNumber <" + getSequenceNumber () + "> \ nSourceClassName <" + getSourceClassName () + "> \ nSourceMethodName <" + getSourceMethodName () + "> \ nThreadId <" + getThreadID () + "> \ nThrown <" + getThrown () + ">"; return result ;} public static void main (String [] args) {PrintableLogRecord logRecord = new PrintableLogRecord (Level. FINEST, "SimpleLog Record"); System. out. println (logRecord) ;}} Output: level <FINEST> LoggerName <null> Message <SimpleLog Record> CurrentMillis <1377662640451> Params <null> ResourceBundle <null> ResourceBundleName <null> SequenceNumber <0> SourceClassName <null> SourceMethodName <null> ThreadId <10> Thrown <null> 4. email logimport java. util. logging. *; import java. io. *; import java. util. properties; import javax. mail. *; import javax. mail. internet. *; public class EmailLogger {private static Logger logger = Logger. getLogger ("EmailLogger"); public static void main (String [] args) throws Exception {logger. setUseParentHandlers (false); Handler conHdlr = new ConsoleHandler (); conHdlr. setFormatter (new Formatter () {public String format (LogRecord record) {return record. getLevel () + ":" + record. getSourceClassName () + ":" + record. getSourceMethodName () + ":" + record. getMessage () + "\ n" ;}}); logger. addHandler (conHdlr); logger. addHandler (new FileHandler ("EmailLoggerOutput. xml "); logger. addHandler (new MailingHandler (); logger. log (Level. INFO, "Testing Multiple Handlers", "SendMailTrue") ;}}// A handler that sends mail messagesclass MailingHandler extends Handler {public void publish (LogRecord record) {Object [] params = record. getParameters (); if (params = null) return; // Send mail only if the parameter is true if (params [0]. equals ("SendMailTrue") {new MailInfo ("bruce@theunixman.com", new String [] {"bruce@theunixman.com"}, "smtp.theunixman.com", "Test Subject", "Test Content "). sendMail () ;}} public void close () {} public void flush () {}} class MailInfo {private String fromAddr; private String [] toAddr; private String serverAddr; private String subject; private String message; public MailInfo (String from, String [] to, String server, String subject, String message) {fromAddr = from; toAddr =; serverAddr = server; this. subject = subject; this. message = message;} public void sendMail () {try {Properties prop = new Properties (); prop. put ("mail. smtp. host ", serverAddr); Session session = Session. getDefaultInstance (prop, null); session. setDebug (true); // Create a message Message mimeMsg = new MimeMessage (session); // Set the from and to address Address addressFrom = new InternetAddress (fromAddr); mimeMsg. setFrom (addressFrom); Address [] to = new InternetAddress [toAddr. length]; for (int I = 0; I <toAddr. length; I ++) to [I] = new InternetAddress (toAddr [I]); mimeMsg. setRecipients (Message. recipientType. TO, to); mimeMsg. setSubject (subject); mimeMsg. setText (message); Transport. send (mimeMsg);} catch (Exception e) {throw new RuntimeException (e );}}}

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.