站内搜索: 请输入搜索关键词

当前页面: 开发资料首页Java 专题一个日志工具类

一个日志工具类

摘要: 一个日志工具类

</td> </tr> <tr> <td height="35" valign="top" class="ArticleTeitle"> 在自己的应用中带一个处理日志的工具类,会减少调试代码的编写并节省时间,以下是网上来的一个日志处理类,用的是sun的日志处理包java.util.logging。

<table width="665" border="0"> <tr> <td width="359">

可以在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);
}
%>

</td> <td width="296"> </td> </tr> </table>

在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