• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

用JAVA写一个日志类程序以供大家学习

发布: 2007-7-14 21:19 | 作者: jacoo  &nb | 来源: 本站原创     | 查看: 134次 | 进入软件测试论坛讨论

领测软件测试网

说明:
    尽管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的页面
名称了。

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网