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

当前页面: 开发资料首页Java 专题用JAVA写一个日志类程序

用JAVA写一个日志类程序

摘要: 用JAVA写一个日志类程序

</td> </tr> <tr> <td height="35" valign="top" class="ArticleTeitle"> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="501" height="86" align="left" valign="top">

说明:
尽管JAVA类库和其他工具提供了不少的纪录程序运行状态的日志类,我发觉也不是万能的,有时需要根据自己调试和跟踪需要,最好自己也要学会写日志类来操作自己的日志,以跟踪程序的错误或其他信息。

下面,我就以我在WEB开发中根据自己的错误跟踪需要写了个日志类。

package myproject.logs;

import java.text.SimpleDateFormat;
import java.io.RandomAccessFile;
import java.io.*;

public class CreateLogs {
private static final String CREATE_LOG_FILE_FOR_WINDOWS = "c:\\javalogs.txt";
private static final String CREATE_LOG_FILE_FOR_LINUX = "/var/javalogs.txt";

public static void createLog(Exception e, String className) {
String rootPath = CREATE_LOG_FILE_FOR_WINDOWS;
if (File.separator.equals("/")) {
rootPath = CREATE_LOG_FILE_FOR_LINUX;
}
try {
java.util.Date date = new java.util.Date();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String exceptionDate = dateFormat.format(date);

//将异常输出到指定的文件下面
RandomAccessFile raf = new RandomAccessFile(rootPath, "rw");
raf.seek(raf.length());
raf.writeBytes("errorTime is " + exceptionDate + " errorClassName is " +
className +
"\n errorException is " + e.toString() + "\n");
raf.close();
}
catch (Exception e1) {
e1.printStackTrace();
}
}
}

以下以一个访问数据库的方法中来演示这个日志类的使用:

public class Dboperation{
...//要用到的其他属性和方法
public boolean userIsExist(String strUser) {//判断用户是否存在
boolean isExist = false;
DBConnect dbc = null; //DBConnect是一个专门负责连接数据库的类
try {
dbc = new DBConnect();
dbc.prepareStatement(
"select department from address where username = ?");
dbc.setBytes(1, strUser.getBytes("gb2312"));
rs = dbc.executeQuery();
if (rs.next()) {
isExist = true;
}
}
catch (Exception e) {
CreateLogs.createLog(e,"Dboperation"); }
finally {
try {
if (rs != null) {
rs.close();
rs = null;
}
dbc.close();
}
catch (Exception e) {
CreateLogs.createLog(e,"Dboperation");
}
}
return isExist;
}


这个日志类也没有特别的,但我觉得方便之处在于,可以准确定位出现异常的的位置,当出现异常时,我可以很快找到出现错误的地方然后找出问题的根因并解决掉问题。这个类也可以用在JSP中,这个时候createLog(Exception e, String className)中的类名就是JSP的页面
名称了。

</td> <td width="183" valign="top"> </td> </tr> </table> </td> </tr> <tr>


↑返回目录
前一篇: 从JAR和zip档案文件中提取Java 资源
后一篇: 良葛格 JDK 5.0 学习笔记