Log4j e procedures

Oi ! Boa tarde,

Alguém sabe como posso e se é possível, configurar o log4j pra fazer logs das minhas consultas com mysql em procedures ?

Abs.!

Possível é… Vou postar um exemplo utilizando Oracle… deve ser só necessário um ajuste para rodar com MySQL


public class JdbcUtil {

	public static void enableDbmsOutput(Connection conn, int buffer_size) {
		try {
			CallableStatement stmt = conn
					.prepareCall("{call sys.dbms_output.enable(?) }");
			stmt.setInt(1, buffer_size);
			stmt.execute();
			System.out.println("Enabled!");
		} catch (Exception e) {
			System.out
					.println("Problem occurred while trying to enable dbms_output! "
							+ e.toString());
		}
	}

	public static void printDbmsOutput(Connection conn, Logger logger,
			UsuarioVO usuario) {
		try {
			CallableStatement stmt = conn
					.prepareCall("{call sys.dbms_output.get_line(?,?)}");
			stmt.registerOutParameter(1, java.sql.Types.VARCHAR);
			stmt.registerOutParameter(2, java.sql.Types.NUMERIC);
			int status = 0;
			do {
				stmt.execute();
				logger.info(" " + stmt.getString(1) + " USER SESSION ID"
						+ usuario.getSessionId());
				status = stmt.getInt(2);
			} while (status == 0);
			System.out.println("End of dbms_output!");
		} catch (Exception e) {
			System.out.println("Problem occurred during dump of dbms_output! "
					+ e.toString());
		}
	}
}

Exemplo Utilizando a classe

        Connection conn;
        // Obtem a conexão JDBC
        JdbcUtil.enableDbmsOutput(conn, Integer.MAX_VALUE);
	StringBuffer params = new StringBuffer();
	String call = "BEGIN PCK_PO_PEDIDOS.PROCEDURE_ORACLE (?,?,?); END;";
	stmt = (WrappedCallableStatement) conn.prepareCall(call);
	stmt.registerOutParameter(1, OracleTypes.NUMBER);
	stmt.registerOutParameter(2, OracleTypes.VARCHAR);
	stmt.registerOutParameter(3, OracleTypes.VARCHAR);
	stmt.execute();
	// DBMS
	JdbcUtil.printDbmsOutput(conn, logger, usuarioVO);

Veja se ajuda