2
respostas

log4j não cria log wildfly

Boa noite,

Estou criando uma aplicação onde farei um controle de log, e logo no começo do projeto estou tentando fazer a configuração do log4j, já usei ele em projetos antes, mas todas as vezes q usei ele já estava configurado, estou configurando ele do 0 pela primeira vez.

eu fiz a configuração por xml(usei o log4j.properties antes, mas deu o mesmo problema que nesse caso) o coloquei na pasta src do projeto, fiz o deploy e coloquei no wildfly, subiu normalmente, acessei um rest q fiz pra testar o log, ele gerou o arquivo de log, só q não foi na pasta log e sim na pasta "bin" e apesar de ter criado o arquivo este estava vasio.....

log4j.xml

<?xml version="1.0" encoding="UTF-8"?>
<!--
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
-->
<log4j:configuration debug="true"
    xmlns:log4j='http://jakarta.apache.org/log4j/'>


    <appender name="fileAppender" class="org.apache.log4j.RollingFileAppender">
        <param name="append" value="true" />
        <param name="file" value="log4j.log" />


        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c{1}] %m%n" />
        </layout>
    </appender>

    <root>
        <level value="DEBUG" />
        <appender-ref ref="fileAppender" />
    </root>

</log4j:configuration>

Rest:

@Path("{id}")
    @GET
    @Produces(MediaType.APPLICATION_JSON)
    public String busca(@PathParam("id") Long id){

        Logger log = Logger.getLogger(ListaTudo.class);
        String a ="teste";
        log.error("teste de error msg");
        log.warn("teste de warn msg");
        log.debug("teste de debug msg");
        log.info("teste de info msg");
        log.fatal("teste de fatal msg");
    }

não sei o q fiz de errado, mas será q alguém pode me ajudar?

2 respostas

Olá Allan, bom dia!

Uma pergunta, você chegou a iniciar o LOG4J ? Onde trabalho eu utilizo ele através do log4j.properties, e antes de chamar os métodos do Log4J eu inicio da seguinte maneira:

public static final String LOG4J_FILENAME = "log4j.properties";

if (new File(LOG4J_FILENAME).exists()) { PropertyConfigurator.configure(LOG4J_FILENAME); }

Após iniciar dessa maneira consigo utilizar o Log4J normalmente através dos comandos:

log.error("teste de error msg"); log.warn("teste de warn msg"); log.debug("teste de debug msg"); log.info("teste de info msg");

Outra coisa, no meu caso eu utilizo o arquivo Log4j.properties mais ou menos assim:

log4j.rootLogger=debug, stdout log4j.logger.com.gooddata.util.JdbcUtil=warn log4j.logger.org.apache.commons.httpclient=warn log4j.logger.httpclient=warn

log4j.additivity.com.gooddata.util.JdbcUtil=false log4j.additivity.org.apache.commons.httpclient=false

log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n

Espero ter ajudado,

abraços,

Bom dia amigo,.

nunca iniciei o Logger desta forma, achei interessante, testei iniciar o Logger desta forma aqui porem não adiantou.

Também já havia tentado fazer a configuração do log4j por arquivo "Log4j.properties", mas tentei faze-lo de novo e não adiantou, esta acontecendo a mesma coisa ao executar pela IDE ele gera o arquivo de log, escreve no arquivo de log tranquilamente, mas ao jogar no wildfly ele para de passa a gravar o arquivo de log na pasta "bin" e não escreve o log no mesmo, nem escreve no arquivo "wildfly-10.1.0.Final\standalone\log\server.log".

meu problema com o log é apenas quando jogo o war do projeto no servidor, ao executar pela IDE funciona normalmente.