我以 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>
但是什么也没显示,我哪里做错了?
最佳答案
您是否使用 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 .
关于hibernate - JBoss 7 + hibernate + Log4j,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10755995/