TA的每日心情 | 开心 2021-3-12 23:18 |
---|
签到天数: 2 天 [LV.1]初来乍到
|
在自己的应用中带一个处理日志的工具类,会减少调试代码的编写并节省时间,以下是网上来的一个日志处理类,用的是sun的日志处理包java.util.logging。
可以在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);
- }
- }
复制代码
源码下载:http://file.javaxxz.com/2014/10/1/025524844.zip |
|