Como desabilitar log c3p0?

1 resposta
L

Bom dia!

Tenho um probleminha que está me tirando a paciência, baixei o c3p0, configurei tudo certinho, conexão está funcionando, não tem o que reclamar, mas toda vez que conecto, ele gera o log COMPLETO, e não tenho ideia de como desativar isso, deixar apenas para erros... (aparentemente está em modo debug).

Procurei e não encontrei nenhum arquivo de config.xml .properties .*, simplesmente não tem, e como todas as configurações eu criei no construtor da classe, então não tem problema, a unica chatice é esse log aparecendo no sistema sem parar, são linhas e mais linhas de INFO, DEBUG e tudo mais.

import java.sql.Connection;
import java.sql.SQLException;

import org.apache.log4j.BasicConfigurator;
import org.apache.log4j.Logger;

import com.mchange.v2.c3p0.ComboPooledDataSource;

final class DatabaseFactory {

	private DatabaseFactory() {
		BasicConfigurator.configure();
		try {
			_source = new ComboPooledDataSource();

			_source.setAutoCommitOnClose(true);
			_source.setInitialPoolSize(10);
			_source.setMinPoolSize(Config.getDBMinCon());
			_source.setMaxPoolSize(Config.getDBMaxCon());
			_source.setAcquireRetryAttempts(0);
			_source.setAcquireRetryDelay(500);
			_source.setCheckoutTimeout(0);
			_source.setAcquireIncrement(5);
			_source.setAutomaticTestTable("connection_test_table");
			_source.setTestConnectionOnCheckin(false);
			_source.setIdleConnectionTestPeriod(3600);
			_source.setMaxIdleTime(1800);
			_source.setMaxStatementsPerConnection(100);
			_source.setBreakAfterAcquireFailure(false);
			_source.setDriverClass("com.mysql.jdbc.Driver");
			_source.setJdbcUrl(Config.getDbURL());
			_source.setUser(Config.getLogin());
			_source.setPassword(Config.getPw());

			/* Testando a conexão */
			_source.getConnection().close();
		} catch (Exception e) {
			throw new Error(
					"DatabaseFactory: Falha ao iniciar as conexões com o banco de dados: "
							+ e, e);
		}
	}

	private final ComboPooledDataSource _source;

	private static final Logger log = Logger.getLogger(DatabaseFactory.class);
	private static ComboPooledDataSource pool;

	private static final class SingletonHolder {
		private static final DatabaseFactory INSTANCE = new DatabaseFactory();
	}

	public static DatabaseFactory getInstance() {
		return SingletonHolder.INSTANCE;
	}

	public static void close(Connection con) {
		BasicConfigurator.configure();
		if (con == null)
			return;

		try {
			con.close();
		} catch (SQLException e) {
			log.warn(
					"DatabaseFactory: Falha ao tentar fechar uma conexão com o banco de dados!",
					e);
		}
	}

	public void shutdown() throws Exception {
		_source.close();
	}

	public Connection getConnection() {
		return getConnection(null);
	}

	public Connection getConnection(Connection con) {
		BasicConfigurator.configure();
		while (con == null) {
			try {
				con = _source.getConnection();
			} catch (SQLException e) {
				log.fatal(
						"DatabaseFactory: Falha ao recuperar conexão com o banco!",
						e);
			}
		}

		return con;
	}

	public int getBusyConnectionCount() throws SQLException {
		return _source.getNumBusyConnectionsDefaultUser();
	}

	public int getIdleConnectionCount() throws SQLException {
		return _source.getNumIdleConnectionsDefaultUser();
	}
}

Funciona perfeitamente, meu problema é o raio do log interno do c3p0....
Alguém sabe como faço para desabilita-lo?
Se precisar de um arquivo, qual é o arquivo e onde ele deve estar ou onde deve ser colocado?

Obrigado!

1 Resposta

L

Boa noite, respondendo minha própria pergunta, mas o importante é deixar registrado pois pelo que pesquisei, não sou o único com esse inconveniente.

Apenas coloquei isso no construtor da classe e todos os logs sumiram (Logs do c3p0).
Vale lembrar que para alterar, basta mutar o “OFF” para qualquer outro nivel, sejam eles:
ALL
CONFIG
FINE
FINER
FINEST
INFO
SEVERE
WARNING
OFF

Properties p = new Properties(System.getProperties()); p.put("com.mchange.v2.log.MLog", "com.mchange.v2.log.FallbackMLog"); p.put("com.mchange.v2.log.FallbackMLog.DEFAULT_CUTOFF_LEVEL", "INFO");

Obrigado a todos.

Criado 22 de janeiro de 2014
Ultima resposta 22 de jan. de 2014
Respostas 1
Participantes 1