奇趣技术网 收藏本站
设为主页
商务合作
首页 新闻中心 行业动态 软件新闻 安全资讯 病毒预警 漏洞发布 操作系统 Dos Win9x Win2000 WinXP Win2003 WinVista Linux Unix
数据库 DB2 Access MSSQL MySQL Oracle Sybase 编程技术 ASP PHP JSP CGI/Perl XML .Net C/C++/C# VB VC Delphi Java 汇编
安全技术 安全教学 工具介绍 漏洞利用 病毒防范 入侵检测 防火墙 安全防范 汉化破解 攻击实例 加密解密 技术论坛
中华网络安全联盟 >> 程序开发 >> Java >> 用JAVA写一个日志类程序以供大家学习
程序开发
Asp
PHP
JSP
CGI/Perl
XML
.Net
C/C++/C#
Visual Basic
Visual C++
Delphi
Java
汇编语言
  • Tomcat5.0.28下AXIS完

  • JSP环境的配置过程(J

  • 高质量C++/C编程手册完

  • 实现Hibernate分页查询

  • Struts + Hibernate 代

  • Hibernate 使用外部 C

  • 利用Eclipse开发Hiber

  • Java开源项目Hibernat

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

    中华网络安全联盟    作者:jacoo    来源:本站原创    时间:2006-4-18

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

    字体:
     
    设为主页 收藏本站 联系我们 友情连接 商务合作 网友留言
    Copyright©2006-2008 中华网络安全联盟 All rights reserved.