【问题标题】:JBoss 7 + Hibernate + Log4jJBoss 7 + 休眠 + Log4j
【发布时间】:2012-05-25 14:14:44
【问题描述】:

我以 Jboss 7.1 中的 log4j 快速入门为起点设置了我的 Java EE 6 应用程序。

我的主要 pom.xml 添加是:

<dependencyManagement>
        <dependencies>
            <!-- Define Log4j dependency and its version -->
            <dependency>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
                <version>${log4j.version}</version>
            </dependency>
...
        </dependencies>
    </dependencyManagement>

<dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <scope>provided</scope>
        </dependency>

版本是 1.2.16。

现在我可以做:

private static final Logger logger = Logger.getLogger(MacchinarioController.class);

并按预期使用记录器。好!

我没有 log4j.xml 或 .properties 文件。

现在我希望 Hibernate 在控制台中打印所有正在执行的 SQL 语句,包括参数值

我创建了这个 log4j.xml 并将它放在 src/main/resources 源文件夹中:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration>

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">

    <appender name="console" class="org.apache.log4j.ConsoleAppender">
        <param name="Threshold" value="info"/>
        <param name="Target" value="System.out"/>
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d{ABSOLUTE} [%t] %-5p %c{1} - %m%n"/>
        </layout>
    </appender>

    <appender name="rolling-file" class="org.apache.log4j.RollingFileAppender">
        <param name="file" value="Program-Name.log"/>
        <param name="MaxFileSize" value="1000KB"/>
        <param name="MaxBackupIndex" value="4"/>
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d [%t] %-5p %l - %m%n"/>
        </layout>
    </appender>
    <logger name="org.hibernate">
        <level value="ALL" />
    </logger>

    <root>
        <priority value ="debug" />
        <appender-ref ref="console" />
        <appender-ref ref="rolling-file" />
    </root>
</log4j:configuration>

但是什么都没有出现,我哪里做错了?

【问题讨论】:

    标签: hibernate jboss log4j jboss7.x


    【解决方案1】:

    您是否使用jboss-deployment-structure.xml 排除log4j 的服务器版本?

    如果您是从头开始应用程序,我绝对不会选择 log4j。我偏向于JBoss Logging,但是JBoss Logging、slf4j或者logback都比log4j好很多。

    默认情况下,JBoss AS 7 使用 JBoss 日志和 JBoss 日志管理器。虽然你真的会/可以只使用 JBoss Logging,因为它可以与任何日志管理器一起使用。

    如果您确实想使用 log4j,请不要使用 log4j 配置。将记录器/类别添加到记录子系统以查看您要查找的结果。

    话虽如此,在 JBoss AS 7 的下一个版本中,您的 log4j 配置将被找到,并且会按照您期望的方式为您工作。更改已推送到upstream

    【讨论】:

      猜你喜欢
      • 2011-07-26
      • 1970-01-01
      • 2018-04-26
      • 1970-01-01
      • 2013-05-23
      • 1970-01-01
      • 2013-01-24
      • 2011-09-19
      • 2013-06-27
      相关资源
      最近更新 更多