java code example_Java log code example

Java log example

Logrecord filter

import 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 sendLogMessages

WARNING:A duck in the house!

Aug 28,2013 11:46:04 AM SimpleFilter sendLogMessages

WARNING:A Wombat at large!

Aug 28,2013 11:46:04 AM SimpleFilter main

INFO:After setting filter..

Aug 28,2013 11:46:04 AM SimpleFilter sendLogMessages

WARNING:A duck in the house!

注:重写isLoggable方法可以对logrecord对象进行过滤。

2.Simple for Formatter Example

import 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 Two");

}

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();

}

}

Output:

INFO  : SimpleFormatterExample -:- logMessages -:- Line One

INFO  : SimpleFormatterExample -:- logMessages -:- Line Two

注:可以对输出的log格式进行特定格式化。

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\n" + "LoggerName

+ getLoggerName() + ">\n" + "Message\n"

+ "CurrentMillis\n" + "Params";

Object[] objParams = getParameters();

if (objParams == null)

result += "\n";

else

for (int i =0; i < objParams.length; i++)

result += "  Param #

+ objParams[i].toString() + ">\n";

result += "ResourceBundle

+ ">\nResourceBundleName

+ ">\nSequenceNumber

+ ">\nSourceClassName

+ ">\nSourceMethodName

+ ">\nThreadId\nThrown

+ ">";

return result;

}

public static void main(String[] args) {

PrintableLogRecord logRecord = new PrintableLogRecord(Level.FINEST,

"SimpleLog Record");

System.out.println(logRecord);

}

}

Output:

Level

LoggerName

Message

CurrentMillis<1377662640451>

Params

ResourceBundle

ResourceBundleName

SequenceNumber<0>

SourceClassName

SourceMethodName

ThreadId<10>

Thrown

4.email log

importjava.util.logging.*;

importjava.io.*;

importjava.util.Properties;

importjavax.mail.*;

importjavax.mail.internet.*;

public classEmailLogger {

private staticLogger logger = Logger.getLogger("EmailLogger");

public static voidmain(String[] args) throwsException {

logger.setUseParentHandlers(false);

Handler conHdlr = newConsoleHandler();

conHdlr.setFormatter(newFormatter() {

publicString format(LogRecord record) {

returnrecord.getLevel() + "  :  "

+ record.getSourceClassName() + ":"

+ record.getSourceMethodName() + ":"

+ record.getMessage() + "\n";

}

});

logger.addHandler(conHdlr);

logger.addHandler(

newFileHandler("EmailLoggerOutput.xml"));

logger.addHandler(newMailingHandler());

logger.log(Level.INFO,

"Testing Multiple Handlers", "SendMailTrue");

}

}

// A handler that sends mail messages

classMailingHandler extendsHandler {

public voidpublish(LogRecord record) {

Object[] params = record.getParameters();

if(params == null) return;

// Send mail only if the parameter is true

if(params[0].equals("SendMailTrue")) {

newMailInfo("bruce@theunixman.com",

newString[] { "bruce@theunixman.com"},

"smtp.theunixman.com", "Test Subject",

"Test Content").sendMail();

}

}

public voidclose() {}

public voidflush() {}

}

classMailInfo {

privateString fromAddr;

privateString[] toAddr;

privateString serverAddr;

privateString subject;

privateString message;

publicMailInfo(String from, String[] to,

String server, String subject, String message) {

fromAddr = from;

toAddr = to;

serverAddr = server;

this.subject = subject;

this.message = message;

}

public voidsendMail() {

try{

Properties prop = newProperties();

prop.put("mail.smtp.host", serverAddr);

Session session =

Session.getDefaultInstance(prop, null);

session.setDebug(true);

// Create a message

Message mimeMsg = newMimeMessage(session);

// Set the from and to address

Address addressFrom = newInternetAddress(fromAddr);

mimeMsg.setFrom(addressFrom);

Address[] to = newInternetAddress[toAddr.length];

for(inti = 0; i 

to[i] = newInternetAddress(toAddr[i]);

mimeMsg.setRecipients(Message.RecipientType.TO,to);

mimeMsg.setSubject(subject);

mimeMsg.setText(message);

Transport.send(mimeMsg);

} catch(Exception e) {

throw newRuntimeException(e);

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值