【问题标题】:Log4j not logging with JBoss 6.1Log4j 不使用 JBoss 6.1 进行日志记录
【发布时间】:2015-04-01 21:40:15
【问题描述】:

我有一个 JavaEE 应用程序,我正在 JBoss 6.1 上部署它。我想用 Log4j。

这些是我的依赖项:

<dependency>
    <groupId>commons-logging</groupId>
    <artifactId>commons-logging</artifactId>
    <version>1.1.1</version>
</dependency>

<dependency>
        <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
    <version>1.5.10</version>
</dependency>

<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.16</version>
</dependency>

<dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.6.4</version>
</dependency>

这是我的 log4j.properties

log4j.rootLogger=info, stdout

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{${datestamp}} %5p: %c{2} - %m%n

我在standalone.conf中添加了这一行

JAVA_OPTS="$JAVA_OPTS -Dorg.jboss.as.logging.per-deployment=false"

这是我的 jboss-deployment-structure.xml

<?xml version="1.0" encoding="UTF-8"?>

<jboss-deployment-structure>
 <deployment>
  <exclusions>
    <module name="org.apache.log4j" />
    <module name="org.apache.commons.logging" />
    <module name="org.slf4j" />
    <module name="org.slf4j.impl" />
  </exclusions>   
 </deployment>
</jboss-deployment-structure>

我在控制台上看不到任何日志。有什么想法吗?

【问题讨论】:

    标签: java logging jboss log4j


    【解决方案1】:

    当您使用 slf4j-log4j12 时,我们也应该为 slf4j-log4j12 配置,在 logge 属性中添加以下内容。

     log4j.rootLogger=DEBUG, STDOUT
     log4j.logger.deng=INFO
     log4j.appender.STDOUT=org.apache.log4j.ConsoleAppender
     log4j.appender.STDOUT.layout=org.apache.log4j.PatternLayout
     log4j.appender.STDOUT.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n
    

    【讨论】:

      【解决方案2】:

      确保$JAVA_OPTS 没有在某处被覆盖(要对其进行测试,您可以在初始化之前将其直接放入standalone.sh 脚本中。

      如果问题仍然存在,则添加-Dlog4j.configuration 属性以指定配置日志文件的路径(确保您有正确的权限)。

      JAVA_OPTS="$JAVA_OPTS -Dorg.jboss.as.logging.per-deployment=false -Dlog4j.configuration=file:$JBOSS_HOME/standalone/configuration/log4j.xml"
      

      确保你configure the log4j.xml file

      请注意,即使您在 .conf 文件中定义属性,它们也会在 .sh 文件中进行解释,因此它们必须是有效的 shell 格式,这意味着 = 之后的空格可以是问题的根本原因。

      【讨论】:

      • 是的,这听起来很有希望。下周假期回来我会试试的,希望赏金没问题
      【解决方案3】:

      【讨论】:

      • 这个答案可能适合 jboss 的社区版,但不适合企业版。
      猜你喜欢
      • 2014-12-25
      • 1970-01-01
      • 2014-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多