我想将log4j用于java和sql。我想在不使用" logger.debug(" log4j logger")" 的情况下打印java和sql日志。
以下是使用的类和log4j属性
package com.log4j;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
public class LogTest {
public static void main(String[] args) throws Exception{
final Logger logger = Logger.getLogger(LogTest.class);
PropertyConfigurator.configure("log4j.properties");
try {
Class.forName("oracle.jdbc.OracleDriver");
Connection conn = DriverManager.getConnection("XXX", "YYY", "ZZZ");
String inserQuery = "insert into table1 (name,id) values (?,?)";
PreparedStatement prestat = conn.prepareStatement(inserQuery);
prestat.setString(1, "Test");
prestat.setString(2, "2");
prestat.executeUpdate();
}
catch (Exception ex)
{
System.out.println("Exception: " + ex.getMessage() + "");
}
}
}
以下是log4j属性
log4j.rootLogger=DEBUG,CA
log4j.logger.java.sql=DEBUG
log4j.logger.java.sql.ResultSet=DEBUG
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG
log4j.appender.CA=org.apache.log4j.ConsoleAppender
log4j.appender.CA.layout=org.apache.log4j.PatternLayout
log4j.appender.CA.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
请告知。
任何帮助将不胜感激
由于
答案 0 :(得分:3)
就像你创建了一个从未使用过的变量那么为什么要创建它,如果你使用
会更好logger.error("Exception: " + ex.getMessage() + "");
而不是
System.out.println("Exception: " + ex.getMessage() + "");
答案 1 :(得分:1)
如果java.sql有一个记录器接口,它可能是java.util.logging而不是LOG4J或SLF4J。我查看了一些java.sql。*类,看起来好像根本没有日志记录。如果这些类中的任何一个都使用了4J日志记录,那么你的方案就可以运行了,但它们并不是因为你只需要将日志记录放在你的代码中。
答案 2 :(得分:0)
如果要打印发送到数据库的 SQL ,可能需要使用log4jdbc-log4j2。这充当代理:
如果您使用 log4j.jar
,则需要添加 slf4j-api.jar
和 slf4j-log4j12.jar
。< / p>
备注的