-
1. Re: Repository Selector no JBoss 7/6 EAP
rimolive Dec 2, 2013 8:58 AM (in response to paulohbmelo)Olá Paulo,
Talvez sua pergunta precise de um contexto um pouco mais detalhado:
* Qual o objetivo de separar os logs das aplicações via classloaders?
* Você recebe algum erro no log ou simplesmente não aparece nada?
* Tentou mudar a prioridade do log para DEBUG para tentar identificar a causa raiz do problema?
* Poderia mostrar de onde você tirou a solução do Logging Profile?
-
2. Re: Repository Selector no JBoss 7/6 EAP
rimolive Jan 20, 2014 9:57 AM (in response to paulohbmelo)Olá Paulo,
Conseguiu resolver o problema?
-
3. Re: Repository Selector no JBoss 7/6 EAP
paulohbmelo Jan 20, 2014 10:30 AM (in response to rimolive)Boa tarde Ricardo! Desculpe a demora, não tinha visto a resposta.
* Qual o objetivo de separar os logs das aplicações via classloaders?
Na verdade não precisa ser via classloaders, resolvendo o meu problema. O lance é que a solução citada (Repository Selector) separava perfeitamente o log da aplicação. Daí eu implementei um adicional pegando toda e qualquer entrada inclusive para console (System.out e System.err) e jogando no log da aplicação. Precisamos disso pois, em nosso ambiente temos várias (dezenas) aplicações e deixar tudo logando no server.log não é nada legal (vira uma zona!).
* Você recebe algum erro no log ou simplesmente não aparece nada?
Não, na verdade, com a implementação modificada que fiz da Repository Selector, somente os logs enviados via Log4j (ex. Logger.getRootLogger().error("...")) vão parar nos logs das aplicações mas, os stacktraces de RuntimeExceptions, por exemplo, vão para o server.log. E no 4.2.3, tudo ia para o log da aplicação.
* Tentou mudar a prioridade do log para DEBUG para tentar identificar a causa raiz do problema?
Isso não adianta pois, o log está funcionando porém, só não separa da forma adequada.
* Poderia mostrar de onde você tirou a solução do Logging Profile?
Eu quero pegar tudo que deu de erro na aplicação, independente se foi em pacotes da mesma ou de terceiros (por isso a solução usava classloaders)
Conseguiu resolver o problema?
Não.
-
4. Re: Repository Selector no JBoss 7/6 EAP
rimolive Jan 25, 2014 8:17 PM (in response to paulohbmelo)1 of 1 people found this helpfulOlá Paulo,
Pelo que indica a documentação, é necessário adicionar um atributo Logging-Profile no seu MANIFEST.MF e depois criar as configurações no JBoss para esse Logging Profile. É exatamente isso que você fez e mesmo assim não deu certo, correto?
Sobre as stacktraces irem para o server.log, isso indica que sua aplicação deve chamar Exception.printStacktrace() e isso envia para o stdout (http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html#printStackTrace()). Infelizmente, não há uma forma melhor de resolver isso sem ao menos passar o stacktrace via Log4J e portanto é necessário um refactoring das aplicações. Nota: Ainda assim qualquer RuntimeException irá para o server.log mas ao meu ver uma RuntimeException não seria um erro específico de aplicação e pode influenciar no servidor como um todo.
Espero que tenha ajudado.
-
5. Re: Repository Selector no JBoss 7/6 EAP
paulohbmelo Jan 27, 2014 1:44 PM (in response to rimolive)Olá Ricardo! Obrigado pela resposta.
Na verdade eu não cheguei a implementá-la mas, só a analisei o que seria o resultado. Pelo que vi, a solução de Logging Profile é baseada em categories que pegariam somente os erros que acontecessem nas classes contidas no pacote da minha aplicação (definido no category). E, a solução que adaptei, pega tudo. Inclusive de jars que estão no JBoss e automaticamente estão no classpath de minha aplicação (via. ..\default\lib, por exemplo).
Na solução que adaptei do Repository Selector, todas as saídas (inclusive as enviadas do printStackTrace() - que são System.err - e as enviadas ao System.out) são enviadas para o arquivo porém, isto está funcionando bem no JBoss 4.2.3, que usa log4j. Já no JBoss 7/6 EAP (que tem log subsystem na frente) já não funciona mais. Inclusive testei a solução do James Perkins (Logging per Deployment Re: Logging per Deployment - JBoss EAP 6.1.0 Final - Bug - Server.out and Server.err messages lost) porém, a saída redirecionada para getServletContext().log() não vai para o arquivo. Mas foi a que mais chegou perto da solução que estou querendo.
Já fez algo parecido?