日期:2014-05-19  浏览次数:20823 次

急求~通过在log4j.properties配置输出操作JDBC的sql语句?
我用的 环境是 tomcat6,jdk1.6

src目录下log4j.properties

log4j.rootLogger=DEBUG,CONSOLE

log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %5p [%13F:%L] - %m%n  

log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.ResultSet=DEBUG

操作数据库的语句是:
----------------------------------
package com.dao;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

import com.model.Student;

public class StudentDAO {
  public static List<Student> getAll(){
  Connection con = null;
  Statement stmt = null;
  ResultSet rs = null;
  List<Student> list=new ArrayList<Student>();
   
  try{
  con=ConnectionDB.getConnection();
  String sql="select * from student";
  stmt = con.createStatement();
  rs=stmt.executeQuery(sql);
  while(rs.next()){
  Student stu=new Student();
  System.out.println(rs.getString("stu_name"));
  stu.setName(rs.getString("stu_name"));
  list.add(stu);
  }
  }catch(SQLException e){
  System.out.println(e);
  throw new RuntimeException(e);
  }finally{
  if(null!=con){
  try{
  rs.close();
  stmt.close();
  con.close();
  }catch(SQLException x){
  System.out.println(x);
  throw new RuntimeException(x);
  }
  }
  }
  return list;
}
}
可就是在控制台打印不出 操作的的SQL语句?

------解决方案--------------------
探讨
引用:
我不知道是不是我理解的问题,
你的意思是不是直接从配置文件中读取select * from student这条语句,然后在程序中使用这条语句运行?
是么?


我只是想通过配置文件(log4j,proprytios)文件,然后再运行程序时,会自动输出rs=stmt.executeQuery(sql);
所执行的SQL语句 也就是 select * from s……

------解决方案--------------------
只用简单的jdbc应该不可以这样打印的,,hibernate可以有配置项可以配是不是要输出sql。

你要输出sql你直接用logger打印吧。
------解决方案--------------------
llog4j.rootLogger=DEBUG, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%c{1} - %m%n
log4j.logger.java.sql.PreparedStatement=DEBUG,stdout

 把这段代码放到log4j里面,lib下要有一个叫这个commons-logging.jar的包就可以了
------解决方案--------------------
看来LZ还没理解Log4j是什么
你的意思是要自己做日志的,那那些sql语句需要你自己用Log4j输出的