jdk1.4的logging的数据库handler实现源码

原创 2004年07月16日 11:08:00

package com.benqguru.palau.log.jdk14log;

import java.util.logging.*;
import java.sql.*;

class JDBCHandler
    extends Handler {

  public void flush() {
  }

  public void publish(LogRecord record) {
    Connection conn = null;

    PreparedStatement pstmt = null;

    try {
      Driver d = (Driver) (Class.forName("org.gjt.mm.mysql.Driver").
                           newInstance());
      DriverManager.registerDriver(d);
      conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/logtest",
                                         "root", "");
      if (conn != null) {
        Object[] content = record.getParameters();
        String sql = "insert into MyLog(logTime,EventType) values(?,?)";
        pstmt = conn.prepareStatement(sql);
        pstmt.setLong(1, record.getMillis());
        pstmt.setString(2, (String) content[0]);
        //save loginfo in databse
        pstmt.execute();
      }
    }
    catch (Exception e) {
      e.printStackTrace();
    }
    finally {
      if (conn != null) {
        try {
          conn.close();
        }
        catch (Exception ex) {
          ex.printStackTrace();
        }
      }
      if (pstmt != null) {
        try {
          pstmt.close();
        }
        catch (Exception ex) {
          ex.printStackTrace();
        }
      }
    }
  }

  public void close() throws java.lang.SecurityException {

  }

  //测试方法
  public static void main(String[] args) {
    Logger log = Logger.getLogger(
        "com.benqguru.commons.logging.test.JDBCHandler");
    JDBCHandler jdbc = new JDBCHandler();
    log.addHandler(jdbc);
    String[] content = {
        "insert"};
    LogRecord lr = new LogRecord(Level.INFO, "second test message");
    lr.setParameters(content);
    // first insert log
    log.log(Level.INFO, "first test message", content);
    //second insert log
    log.log(lr);
  }
}

绿色版本的jdk1.4及源码

  • 2013年04月27日 11:29
  • 33.77MB
  • 下载

江南带你从源码看handler内部实现的机制

介绍handler之前首先我们来看下ThreadLocal类的用法private static ThreadLocal sthread; public static void main(Str...
  • u012070360
  • u012070360
  • 2016年05月08日 00:51
  • 1272

Python 模块之Logging(四)——常用handlers的使用

一、StreamHandler流handler——包含在logging模块中的三个handler之一。能够将日志信息输出到sys.stdout, sys.stderr 或者类文件对象(更确切点,就是能...
  • yypsober
  • yypsober
  • 2016年07月01日 11:51
  • 9046

JDK.1.4新特性及增强内容概要

Java 2 SDK 1.4标准版的新特性如下所列。 包含以前SDK版本的特性的完整列表可以从 特性指南得到。 Java 2 平台 XML处理 新I/O API 安全 Java 2DTM技术 图形I/...
  • snakeqi
  • snakeqi
  • 2004年07月25日 22:34
  • 2081

Jdk1.4下线程池

 Jdk1.4下线程池       JSR 166 (java.util.concurrent)是jdk1.5的部分,它给我们的多线程开发带来很多方便。因为很多应用环境还是在jdk1.4下,目前还无法...
  • nearsun
  • nearsun
  • 2008年02月02日 11:23
  • 2075

Python Logging模块-Logger,Handler,Formatter

#
  • u011897301
  • u011897301
  • 2016年04月25日 21:30
  • 1725

JDK1.6 源码学习笔记(二)

源码学习JDK版本:JDK1.6 第二节:java.util.ArrayList 1.ArrayList都会有一个默认容量,且容量大小是自动变化的,以满足放入的内容的个数。 ...
  • JustForFly
  • JustForFly
  • 2012年03月19日 11:38
  • 5986

python 动态增加logger handler

需求: 针对不同的项目按照年月生成不同的日志目录。 import os,datetime,logging,logging.config from core.config.config_log im...
  • kelindame
  • kelindame
  • 2017年04月25日 22:19
  • 485

深入源码解析Android中的Handler,Message,MessageQueue,Looper

本文主要是对Handler和消息循环的实现原理进行源码分析,通过分析源码的方式去探索Thread、MessageQueue、Looper、Message以及Handler的实现原理,并最终通过一张图的...
  • sunqunsunqun
  • sunqunsunqun
  • 2015年08月01日 02:20
  • 15576

JDK1.4环境下使用Eclipse3.4的方法

 在快捷方式中以以下目标启动C:/eclipse3.4/eclipse.exe -vm "C:/Program Files/Java/jre1.5.0_10/bin/client/jvm.dll" 前...
  • bedweather
  • bedweather
  • 2008年08月26日 15:30
  • 980
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:jdk1.4的logging的数据库handler实现源码
举报原因:
原因补充:

(最多只允许输入30个字)