中华网络安全联盟    作者: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的页面

名称了。

怎样用java编写日志_用JAVA写一个日志类程序以供大家学习相关推荐

  1. python编写木马攻击_用Python写一个自动木马程序

    电脑作为大家日常办公的工具,最怕的一件事情之一就是被偷,当我们的电脑被盗的时候,不仅仅是电脑本身,更重要的是电脑存储的资料都会丢失.如何尽快的找回电脑需要我们想点办法,今天就教大家一个好的技巧,虽说不 ...

  2. java编写存钱_用Java编写一个简单的存款

    package desposit.money; public class DespositMoney { public static void main(String[] args) { Custom ...

  3. java编写管理系统_用java编写学生信息管理系统

    <用java编写学生信息管理系统>由会员分享,可在线阅读,更多相关<用java编写学生信息管理系统(7页珍藏版)>请在人人文库网上搜索. 1.用java编写学生信息管理系统im ...

  4. 用java编写圆锥_求java大神帮忙 求大神帮助!Java

    导航:网站首页 > 求java大神帮忙 求大神帮助!Java 求java大神帮忙 求大神帮助!Java 相关问题: 匿名网友: 普通类 public class CircularA { //求圆 ...

  5. java编写流星_纯Java代码实现流星划过天空

    废话不多说了,直接给大家贴java代码了. import java.awt.Color; import java.awt.Graphics; import java.awt.image.Buffere ...

  6. 用java编写连连看_用java语言编写连连看游戏

    展开全部 我以前自己写一个玩的.没有把你要求的功能全部实现,不过你看了后可以改32313133353236313431303231363533e4b893e5b19e31333238646335一下就 ...

  7. 用java编写计算器_用Java编写一个简单的计算器

    1.使用记事本或eclipse等编程工具,建立一个图形界面应用程序. 2.程序完成简单的四则计算功能 3.用户可以在名为Number1和Number2的文本输入框中输入2个操作数,然后点击下面的4个按 ...

  8. 用java编写计算器_用JAVA编写一个计算器

    展开全部 import java.awt.BorderLayout; import java.awt.Color; import java.awt.GridLayout; import java.aw ...

  9. php 加入日志功能,php怎么写一个日志功能的函数

    我们要写一个写日志的函数,首先需要了解需求,我们一般怎么用日志函数呢?例如,程序执行到某一步,我希望把这个变量(地址)$user_address的值打印到日志,我们希望日志里是这么写的: `xx-xx ...

最新文章

  1. set firefox new tab url
  2. tcc分布式事务_什么是 TCC分布式事务?
  3. ajax——XMLHttpRequest
  4. 全志V3S代码中的bug之1
  5. 批量导入sql文件。
  6. Hello Blazor:(11)全局截获事件执行
  7. hash函数查找和ASL计算
  8. Beego开源项目 收藏
  9. WebSocket心跳检测和重连机制
  10. Java电商项目-5.内容管理cms系统
  11. 使用 emoji表情 实现自己的 表情库
  12. RS码在AWGN信道和2PSK调制下的误码率曲线图(修改自lin_yulin,亲测可用)
  13. 路由2台,二层交换机4台,三层1台,实现网络互联
  14. 基于BP人工神经网络的手写英文字符识别
  15. 高等数学(第七版)同济大学 总习题十一 个人解答
  16. 985高校博士因文言文致谢走红!导师评价其不仅SCI写得好...
  17. Android Camera:从零开发一款相机APP Day01:前景
  18. gethostbyname, gethostbyaddr(原来百度叫shifen 十分?)
  19. python连接teradata_Python teradata Uda Exec ODBC连接问题
  20. LabWindows界面的程序控制

热门文章

  1. ML 神经网络 NeuralNetworks
  2. 如何编写项目总结报告(转)
  3. 使用 EclEmma 来显示代码覆盖率
  4. 理财心理陷阱之:年终奖——年末的虚假繁荣
  5. 关于使用sudo命令后找不到JAVA_HOME的问题
  6. PrestaShop 网站后台配置(三)
  7. 机器学习和大数据——提高信用卡安全性
  8. (四)Thymeleaf标准表达式之——[3-6] 操作符(文本、算术、布尔、比较及相等)...
  9. 交叉编译VIM并移植到ARM嵌入式Linux系统
  10. Ubuntu下压缩解压文件