可以在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