2017-02-17 5 views
1

Quelqu'un at-il déjà essayé d'utiliser par défaut construit dans slf4j avec log4j2 dans Tapestry 5.4? je peux utiliser le log4j2 comme ceci:Tapisserie 5 + log4j2

import org.apache.logging.log4j.LogManager; 
import org.apache.logging.log4j.Logger; 
...  
private Logger logger = LogManager.getLogger(this.getClass()); 

Mais je ne peux pas utiliser comme ceci:

import org.apache.tapestry5.ioc.annotations.Inject; 
import org.slf4j.Logger; 
... 
@Inject private Logger logger; 

Je ne comprends pas pourquoi, parce que je pense, j'ai ajouté à mon script gradle le requis libs:

runtime group: 'org.apache.logging.log4j', name: 'log4j-api', version: '2.8' 
runtime group: 'org.apache.logging.log4j', name: 'log4j-core', version: '2.8' 
runtime group: 'org.apache.logging.log4j', name: 'log4j-web', version: '2.8' 
runtime group: 'org.apache.logging.log4j', name: 'log4j-slf4j-impl', version: '2.8' 

Quelqu'un at-il une idée, pourquoi ça ne marche pas pour moi?

Merci d'avance!

+0

Y at-il des erreurs? Comment savez-vous que cela ne fonctionne pas? –

+1

Salut! Merci pour la réponse. Le problème était que dans le fichier log4j2.xml était défini le niveau MIN DEBUG, mais si vous utilisez la version d'injection, seulement la connexion au niveau info, mais si j'utilise ce 'Logger Logger privé = LogManager.getLogger (this.getClass());' alors le niveau DEBUG était activé. De toute façon, mon collègue m'a aidé, je vais répondre à la solution. :) – LakiGeri

Répondre

1

j'ai été aidé, et je trouve une solution, je devais changer le fichier gradle à ceci:

compile group: 'org.apache.logging.log4j', name: 'log4j-api', version: '2.8' 
compile group: 'org.apache.logging.log4j', name: 'log4j-core', version: '2.8' 
compile group: 'org.apache.logging.log4j', name: 'log4j-web', version: '2.8' 
compile group: 'org.apache.logging.log4j', name: 'log4j-slf4j-impl', version: '2.8'