dac
Junho 9, 2006, 10:18am
#1
Fala pessoal…
Tenho uma dúvida…
Oq aconteceria se em um determinado aplicativo eu configurasse as saidas de log do Log4J em um banco de dados e esse banco de dados no momento do log estiver fora???
O Log4J tem alguma outra saida padrão? ele trata esse tipo de falha?
_fs
Junho 9, 2006, 11:59am
#2
Depende de qual classe está usando para fazer o log no banco. De qualquer maneira pode dar uma olhada nesta aqui:
http://www.dankomannhaupt.de/projects/index.html
E alterar as classes para terem o comportamento que você deseja caso a conexão com o banco falhe.
dac
Junho 9, 2006, 1:23pm
#3
É essa classe mesmo q estou utilizando…
Qual é o comportamento padrão dela? Caso o banco falhar ela ignora?
_fs
Junho 9, 2006, 2:30pm
#4
Source da classe JDBCAppender:
protected void connect() throws Exception {
// ...
if (connectionHandler instanceof JDBCPoolConnectionHandler) {
jlogger.setConnection(connectionHandler);
} else {
if (url != null && username != null && password != null) {
con = connectionHandler.getConnection(url, username, password);
} else {
con = connectionHandler.getConnection();
}
if (con.isClosed()) { throw new Exception(
"JDBCAppender::connect(), JDBCConnectionHandler returns no connected Connection !"); }
jlogger.setConnection(con);
}
} catch (Exception e) {
throw new Exception("JDBCAppender::connect(), " + e);
}
// ...
A exceção é jogada e, vendo o fluxo da classe, nada será logado.
Minha sugestão é que escreva seu próprio JDBCAppender.