SLF4J Log4J Jboss 4.3 и EJB 3.0

Я сделал новую программу с ejb3 + slf4j с maven

Чтобы использовать SLF4J с LOG4J, у меня есть

<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-api</artifactId>
  <version>1.6.2</version>
  <scope>compile</scope>
</dependency>
<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-simple</artifactId>
  <version>1.6.2</version>
  <scope>compile</scope>
</dependency>
<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-log4j12</artifactId>
  <version>1.6.2</version>
  <scope>compile</scope>
</dependency>

Но я сказал, что не кладите мне в ухо банки с log4j, чтобы использовать банку с JBOSS.

    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.16</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>apache-log4j-extras</artifactId>
        <version>1.1</version>
        <scope>provided</scope>
    </dependency>

Jboss имеет файл конфигурации с именем jboss-log4j.xml

внутри корня говорится, что используйте приложение ASYNC

  <root>
      <appender-ref ref="ASYNC"/>
  </root>

Appender Async использует ФАЙЛ приложения.

 <appender name="ASYNC" class="org.apache.log4j.AsyncAppender">
    <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
    <param name="Threshold" value="INFO"/>
    <appender-ref ref="FILE"/>
</appender>

И ФАЙЛ приложения

 <appender name="FILE" class="org.jboss.logging.appender.DailyRollingFileAppender">
     <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
     <param name="File" value="${jboss.server.log.dir}/server.log"/>
     <param name="Append" value="false"/>
     <param name="DatePattern" value="'.'yyyy-MM-dd"/>
     <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%d [%t] %-5p [%c] %m%n"/>
     </layout>
  </appender>

Этот аппендер работает, в этом файле написано много всего.

Но я хочу новый файл для моей службы

Я добавил категорию, имя категории - это имя пакета, который содержит все мои новые разработки.

    <category name="com.mycompany.ti.minewsystem">
            <priority value="DEBUG" />
            <appender-ref ref="MYAPPENDER"/>
    </category>

И приложение

    <appender name="MYAPPENDER" class="org.jboss.logging.appender.DailyRollingFileAppender">
            <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
            <param name="File" value="${jboss.server.home.dir}/log/ws-mysystem.log"/>
            <param name="Append" value="false"/>
            <param name="DatePattern" value="'.'yyyy-MM-dd"/>
            <layout class="org.apache.log4j.PatternLayout">
                    <param name="ConversionPattern" value="%d [%t] %-5p [%c] %m%n"/>
            </layout>
    </appender>

И, наконец, mi EJB импортирует SLF4J

  import org.slf4j.Logger;
  import org.slf4j.LoggerFactory;

создать регистратор

  private Logger logger = LoggerFactory.getLogger(MyEJB.class);

и использовал

  logger.debug("--------- HI! ------------------");

Файл журнала (ws-mysystem.log) создан, но все еще имеет нулевое значение в байтах :(

Все больше Red Hat и Java 6 на JBOSS 4.3

Кто-нибудь знает, что не так с моей процедурой?

Может, есть что-то Dark с Slf4J и JBOSS? или EJB3.0 и ClassLoaders? или 2012 год и конец света?

Заранее спасибо


person Kaltresian    schedule 20.01.2012    source источник
comment
Попробуйте добавить параметр порога в новое приложение: ‹имя параметра = значение порога = DEBUG /›   -  person Brent Worden    schedule 20.01.2012
comment
С ‹имя параметра = Пороговое значение = ОТЛАДКА /› ничего не меняется :(   -  person Kaltresian    schedule 20.01.2012


Ответы (1)


Проверьте настройки загрузчика классов - унифицированные загрузчики классов в JBoss по умолчанию слишком унифицированы (я столкнулся с утечками классов и ресурсов между независимыми веб-контекстами). Попробуйте отключить унифицированные загрузчики классов и изменить настройки родительского первого.

person Konstantin Pribluda    schedule 21.01.2012