2017-02-07 15 views
0

Я пытаюсь использовать log4j для записи информации в файл. Мой log4j, который находится в SRC/основные/ресурсы/SIXSFD, выглядит следующим образом:Log4j FileAppender не работает на jboss7

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> 

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="true"> 

    <appender name="SYNC-PERFORMANCE" class="org.apache.log4j.FileAppender"> 
    <param name="File" value="/Users/dcalderon/Desktop/log/sixsfd-bof" /> 
    <layout class="org.apache.log4j.SimpleLayout"> 
    </layout> 
    </appender> 

    <logger name="com.somepackage.PerformanceLoggerInterceptor" additivity="false"> 
    <appender-ref ref="SYNC-PERFORMANCE" /> 
    </logger> 
</log4j:configuration> 

Как вы можете видеть, я пытаюсь записывать всю информацию из com.somepackage.PerformanceLoggerInterceptor класса в /Пользователи/dcalderon/Desktop/log/sixsfd-bof. Это то, что класс выглядит следующим образом:

package com.somepackage.interceptor; 

import org.apache.log4j.Logger; 

import javax.interceptor.AroundInvoke; 
import javax.interceptor.InvocationContext; 
import java.io.Serializable; 

public class PerformanceLoggerInterceptor implements Serializable { 
    private static final Logger logger = Logger.getLogger(PerformanceLoggerInterceptor.class); 
    private static final String SIMPLE_FORMAT = "{}|{}|{}|{}"; 

    @AroundInvoke 
    public Object logPerformance(InvocationContext invocationContext) throws Exception { 
     long startTime = System.currentTimeMillis(); 
     Object returnValue = invocationContext.proceed(); 
     long endTime = System.currentTimeMillis(); 
     logger.error(SIMPLE_FORMAT); 
     return returnValue; 
    } 
} 

Но по какой-то причине, файл создается, но линия SIMPLE_FORMAT не записывается на файл. Тем не менее, он регистрируется на jboss server.log

Есть ли что-то не так с моей конфигурацией ?.

Примечание: По какой-то причине, я получаю это на JBoss при развертывании (jboss7):

log4j:WARN No appenders could be found for logger (org.jboss.logging). 
log4j:WARN Please initialize the log4j system properly. 

Я не знаю, как это важно.

ответ

1

С JBoss AS 7 вам необходимо предоставить exclude log4j и включить свою версию. Вы также захотите убедиться, что он попадает в ваш каталог WAR/WEB-INF/classes, поэтому он заканчивается на пути к классу.

+0

Да, мне не хватало файл структуры jboss-deployment-structure. –