Я создал новую программу с 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
внутри корня говорит использовать appende ASYNC
<root>
<appender-ref ref="ASYNC"/>
</root>
Приложение Asyncиспользуйте appender FILE
<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 FILE имеет значение
<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>
Этот appender работает, многие вещи записаны в этом файле.
Но я хочу новыйфайл для моего сервиса
Я добавил категорию, название категории - это название пакета, который включает в себя все мои новые разработки
<category name="com.mycompany.ti.minewsystem">
<priority value="DEBUG" />
<appender-ref ref="MYAPPENDER"/>
</category>
И Appender -
<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>
И, наконец, 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 год и конец света?
Заранее спасибо