Я сделал новую программу с 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 год и конец света?
Заранее спасибо