急求~通过在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语句?
------解决方案--------------------
------解决方案--------------------只用简单的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输出的