2017-02-17 26 views
1

Кто-нибудь когда-либо пытался использовать по умолчанию встроенный slf4j с log4j2 в Tapestry 5.4? я могу использовать log4j2 так:Гобелен 5 + log4j2

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

Но я не могу использовать так:

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

Я не могу понять, почему, потому что я думаю, я добавил к моему Gradle подлиннику требуемый 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' 

Есть ли у кого-нибудь идеи, почему это не работает для меня?

Заранее благодарен!

+0

Есть ли ошибки? Откуда вы знаете, что это не работает? –

+1

Привет! Спасибо за ответ. Проблема заключалась в том, что в log4j2.xml был установлен минимальный уровень DEBUG, но если вы используете инъекционную версию, только регистрируетесь на информационном уровне, но если я использую этот 'private Logger logger = LogManager.getLogger (this.getClass()); тогда уровень DEBUG был включен. В любом случае мой коллега помог мне, я собираюсь ответить на решение. :) – LakiGeri

ответ

1

мне помогли, и я нашел решение, я должен был изменить Gradle файл следующим образом:

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'