2012-05-25 6 views
2

Я устанавливаю приложение Java EE 6 в качестве отправной точки для быстрого запуска log4j в Jboss 7.1.JBoss 7 + Hibernate + Log4j

Мои ключевые дополнения 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.

Теперь я могу сделать:

частным статическим окончательным Logger лесоруб = Logger.getLogger (MacchinarioController.class);

и использовать регистратор, как ожидалось. Хорошо!

У меня нет файлов log4j.xml и .properties.

Теперь я хочу, чтобы Hibernate печатал на консоли все выполняемые операторы SQL, включая значения параметров.

Я создал этот log4j.xml и поместить его в SRC/основной исходной папке/ресурсы:

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

Но ничего не показывает вверх, где я делаю неправильно?

ответ

2

Вы используете jboss-deployment-structure.xml, чтобы исключить версию сервера log4j?

Если вы начинаете приложение с нуля, я определенно не выбираю log4j. Я склонен к JBoss Logging, но JBoss Logging, slf4j или logback намного лучше, чем log4j.

По умолчанию JBoss AS 7 использует JBoss Logging с JBoss Log Manager. Хотя вы действительно могли бы использовать JBoss Logging, поскольку он будет работать с любым менеджером журналов.

Если вы хотите использовать log4j, не используйте конфигурацию log4j. Добавьте регистратор/категорию в подсистему ведения журнала, чтобы увидеть результаты, которые вы ищете.

Все, что сказано, в следующем выпуске JBoss AS 7 будет найдена ваша конфигурация log4j и будет работать именно так, как вы ожидаете. Изменения были перенесены на upstream.

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