2014-08-31 4 views
0

Im использует сварные швы и log4j2 для регистратора. Но я ничего не могу получить от Уэлда. Другие лесозаготовки отлично работают.Weld-SE не регистрируется с log4j2

Библиотеки:

<dependency> 
     <groupId>org.jboss.weld.se</groupId> 
     <artifactId>weld-se-core</artifactId> 
     <version>2.2.4.Final</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.logging.log4j</groupId> 
     <artifactId>log4j-api</artifactId> 
     <version>2.0.2</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.logging.log4j</groupId> 
     <artifactId>log4j-core</artifactId> 
     <version>2.0.2</version> 
    </dependency> 

log4j2.xml

<Configuration status="INFO"> 
    <Appenders> 
     <Console name="Console" target="SYSTEM_OUT"> 
      <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/> 
     </Console> 
    </Appenders> 
    <Loggers> 
     <logger name="org.jboss.weld.level" level="debug"/> 
     <Root level="debug"> 
      <AppenderRef ref="Console"/> 
     </Root> 
    </Loggers> 
</Configuration> 

Спасибо за советы.

ответ

3

Попробуйте использовать реализацию SLF4J для Log4j 2:

<dependency> 
    <groupId>org.jboss.weld.se</groupId> 
    <artifactId>weld-se-core</artifactId> 
    <version>2.2.4.Final</version> 
</dependency> 
<dependency> 
    <groupId>org.apache.logging.log4j</groupId> 
    <artifactId>log4j-core</artifactId> 
    <version>2.0.2</version> 
</dependency> 
<dependency> 
    <groupId>org.apache.logging.log4j</groupId> 
    <artifactId>log4j-slf4j-impl</artifactId> 
    <version>2.0.2</version> 
</dependency> 

JBoss Weld использовать класс org.jboss.logging.LoggerProviders для поиска поставщика протоколирования. Если вы видите code этого класса, вы увидите, что ищет системное свойство, org.jboss.logging.provider.

Вы можете добавить аргументы jvm или можете его эмулировать. например:

public class App { 

    static { 
     System.setProperty("org.jboss.logging.provider", "slf4j"); 
    } 

    public static void main(String[] args) { 
     Weld weld = new Weld(); 
     WeldContainer container = weld.initialize(); 
     // Do something 
     weld.shutdown(); 
    } 

} 
+0

Благодарим вас за ответ – enkor

Смежные вопросы