【问题标题】:Weld-SE not logging with log4j2Weld-SE 不使用 log4j2 记录
【发布时间】:2014-10-24 19:38:53
【问题描述】:

我正在使用weld-se 和log4j2 作为记录器。但我无法从 Weld 那里得到任何东西。其他日志记录工作正常。

图书馆:

    <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>

谢谢你的建议。

【问题讨论】:

    标签: log4j2 weld-se


    【解决方案1】:

    尝试对 Log4j 2 使用 SLF4J 实现:

    <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();
        }
    
    }
    

    【讨论】:

      猜你喜欢
      • 2020-06-10
      • 1970-01-01
      • 2023-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-14
      • 2018-01-09
      • 2019-05-20
      相关资源
      最近更新 更多