Bom dia estou com um problema no log4j ele nao esta funcionando de forma nenhuma gostaria de uma ajuda,
minha classe Dao
publicclassClienteDao{privatestaticClienteDaoinstance;publicstaticClienteDaogetInstance(){if(instance==null){instance=newClienteDao();}returninstance;}privateLoggerlogger;privateClienteDao(){logger=Logger.getLogger(ClienteDao.class);}publicArrayList<Cliente>obterClientes(){ArrayList<Cliente>clientes=newArrayList<Cliente>();try{logger.info("Obtendo a lista de clientes");Connectioncon=PoolConection.getInstance().getConnection();Statementstmt=con.createStatement();ResultSetrs=stmt.executeQuery("SELECT * FROM Cliente");while(rs.next()){Stringnome=rs.getString("nome");Stringendereco=rs.getString("endereço");Stringcpf=rs.getString("cpfCliente");Stringtelefone=rs.getString("telefone");Clientec=newCliente(nome,endereco,telefone,cpf);clientes.add(c);}logger.info("Lista de clientes obtida com sucesso");}catch(Exceptione){logger.error("Não foi possível obter a lista de clientes. Motivo:\n "+e.getMessage());}returnclientes;}
Quando você compila/gera o pacote(jar) o log4j.properties está ficando onde? Coloca a hierarquia aí.
Flw
G
guialeixo
Foxlol:
Quando você compila/gera o pacote(jar) o log4j.properties está ficando onde? Coloca a hierarquia aí.
Flw
como que eu faço isso xD??
ehhee ele ta dentro do projeto, num ta dentro do src nao
Foxlol
HIAOUIAE eita.
O log4j.properties tem que estar na pasta raiz onde você coloca os arquivos java (.java), geralmente é SRC, mas pode ter outros nomes. Vc está usando alguma IDE?
Ai depois que compila, gera o arquivo jar, e o arquivo log4j.properties tem q estar na pasta raiz de onde estão as classes compiladas (.class).
G
guilherme.cq
Bem lembrado!
static para o logger!
privatestaticLoggerlogger=Logger.getLogger("");
G
guialeixo
Foxlol:
HIAOUIAE eita.
O log4j.properties tem que estar na pasta raiz onde você coloca os arquivos java (.java), geralmente é SRC, mas pode ter outros nomes. Vc está usando alguma IDE?
Ai depois que compila, gera o arquivo jar, e o arquivo log4j.properties tem q estar na pasta raiz de onde estão as classes compiladas (.class).
huauha intao iniciante =)
eu to usando o eclipse mas eu acho q ja coloquei no classpath sim so q continua dando erro quando eu coloco dentro do src da esse erro
log4j:ERROR Could not connect to remote log4j server at [localhost]. We will try again later.
java.net.ConnectException: Connection refused: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(Unknown Source)
at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at org.apache.log4j.net.SocketAppender.connect(SocketAppender.java:203)
at org.apache.log4j.net.SocketAppender.activateOptions(SocketAppender.java:160)
at org.apache.log4j.config.PropertySetter.activate(PropertySetter.java:256)
at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:132)
at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:96)
at org.apache.log4j.PropertyConfigurator.parseAppender(PropertyConfigurator.java:654)
at org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:612)
at org.apache.log4j.PropertyConfigurator.parseCatsAndRenderers(PropertyConfigurator.java:533)
at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:417)
at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:441)
at org.apache.log4j.helpers.OptionConverter.selectAndConfigure(OptionConverter.java:468)
at org.apache.log4j.LogManager.<clinit>(LogManager.java:122)
at org.apache.log4j.Logger.getLogger(Logger.java:116)
at br.com.oficina.dao.ClienteDao.<init>(ClienteDao.java:32)
at br.com.oficina.dao.ClienteDao.getInstance(ClienteDao.java:25)
at br.com.oficina.view.TableCliente$TableClienteModel.<init>(TableCliente.java:125)
at br.com.oficina.view.TableCliente.<init>(TableCliente.java:26)
at br.com.oficina.view.TableCliente.main(TableCliente.java:174)
Foxlol
Então cara, tá certo dar esse erro.
O problema pelo que to vendo é que ele não está conseguindo conectar neste socket do apendder que vc definiiu:
org.apache.log4j.net.SocketAppender
Faz o teste, tira toda configuração desse appender e deixa soh o Default que deve subir.
Aí depois vc vê o pq não tah conectando. Vc tem que ter um socket aberto nessa porta 4445.
Flw
G
guilherme.cq
Verifique:
O log4j.properties deve ficar na pasta src.
importorg.apache.log4j.Logger;
Importou o log4j-1.2.15.jar no eclipse? (pode ser outra versão)
Clica com botao direto no projeto… Build Path - > Add External Archives.
Importou o log4j-1.2.15.jar no eclipse? (pode ser outra versão)
Clica com botao direto no projeto... Build Path - > Add External Archives.
Normalmente se usa
private static final Logger logger = Logger.getLogger(SuaClasse.class);
static pois você usará a mesma instancia para todas as classes.
Podem me corrigir se falei besteira...
tipo eu ja adicionei externamente porem foi a versao
log4j-1.2.11.jar
nao creio que tenha tanto problema, o negocio do private é pq eu estou fazendo meus daos no padrao singleton dai nao da pra mim fazer isso que voce ta me sugerindo (ACHO)
olha a estrutura
publicclassClienteDao{privatestaticClienteDaoinstance;publicstaticClienteDaogetInstance(){if(instance==null){instance=newClienteDao();}returninstance;}privateLoggerlogger;privateClienteDao(){logger=Logger.getLogger(ClienteDao.class);}publicArrayList<Cliente>obterClientes(){ArrayList<Cliente>clientes=newArrayList<Cliente>();try{logger.info("Obtendo a lista de clientes");Connectioncon=PoolConection.getInstance().getConnection();Statementstmt=con.createStatement();ResultSetrs=stmt.executeQuery("SELECT * FROM Cliente");while(rs.next()){Stringnome=rs.getString("nome");Stringendereco=rs.getString("endereço");Stringcpf=rs.getString("cpfCliente");Stringtelefone=rs.getString("telefone");Clientec=newCliente(nome,endereco,telefone,cpf);clientes.add(c);}logger.info("Lista de clientes obtida com sucesso");}catch(Exceptione){logger.error("Não foi possível obter a lista de clientes. Motivo:\n "+e.getMessage());}returnclientes;}
Foxlol
guialeixo:
Foxlol:
Então cara, tá certo dar esse erro.
O problema pelo que to vendo é que ele não está conseguindo conectar neste socket do apendder que vc definiiu:
org.apache.log4j.net.SocketAppender
Faz o teste, tira toda configuração desse appender e deixa soh o Default que deve subir.
Aí depois vc vê o pq não tah conectando. Vc tem que ter um socket aberto nessa porta 4445.
Flw
fiz o que voce falou porem agora nao da erro mas tb nao funciona