可以在jsp或应用程序中如下调用: test.jsp
<%@ page import="beartool.LogUtil" %>
<%@ page contentType="text/html; charset=gb2312" %>
日志测试
<%
String s="2345a";
try{
int i=Integer.parseInt(s);
}catch(NumberFormatException e){
LogUtil.log("发现异常");
LogUtil.log(e);
}
%>
在Tomcat 5.5的日志文件中是如下的输出:
2005-8-7 10:06:07 beartool.LogUtil init
信息: Log started.
2005-8-7 10:06:07 beartool.LogUtil log
信息: 发现异常
2005-8-7 10:06:07 beartool.LogUtil log
警告:
java.lang.NumberFormatException: For input string: "2345a"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
at java.lang.Integer.parseInt(Integer.java:456)
at java.lang.Integer.parseInt(Integer.java:497)
at org.apache.jsp.test_jsp._jspService(org.apache.jsp.test_jsp:50)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:99)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:325)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:245)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:825)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:738)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:526)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:595)
下面是这个工具类的代码:有四个静态方法用于输出日志
/*
* $Id: LogUtil.java,v 1.1 2003/06/17 01:14:03 jack Exp $
*
*/
package beartool;
import java.util.logging.*;
/**
* @author JACK(Jun 15, 2003)
* @class LogUtil
*/
public class LogUtil {
private static Logger logger;
private static boolean loggable;
public LogUtil() {
}
private static boolean init() {
if(loggable)
return loggable;
try {
logger = Logger.getLogger("beartool");
// Use the default logger with Tomcat.
// All details will be logged in file: launcher.server.log
// under directory logs.
// Log every details.
logger.setLevel(Level.ALL);
// Testing.
logger.info("Log started.");
}catch(Exception e) {
return false;
}
loggable = true;
return loggable;
}
public static boolean log(Level level, String mesg) {
if(! init()) return false;
logger.log(level, mesg);
return true;
}
public static boolean log(String mesg) {
return log(Level.INFO, mesg);
}
public static boolean log(Level level, String mesg, Throwable throwable) {
if(! init()) return false;
logger.log(level, mesg, throwable);
return true;
}
public static boolean log(Throwable throwable) {
return log(Level.WARNING, "", throwable);
}
}
</td>
</tr>
<tr>
↑返回目录
前一篇: 16进制字符串转换为字节数组
后一篇: 打印JVM的属性和系统支持的LOCALE