2013-01-06 19 views
8

Mam problemy z rejestrowaniem przy użyciu moich aplikacji zdefiniowanych w pliku konfiguracyjnym XML log4j.Używanie konfiguracji Log4J aplikacji pod JBoss 7.1.1

Utworzono jboss-deployment-structure.xml w folderze META-INF mojego EAR bez powodzenia.

JBoss-rozmieszczenie-structure.xml struktura jest następująca:

<jboss-deployment-structure> 
<ear-subdeployments-isolated>false</ear-subdeployments-isolated> 
    <deployment> 
     <exclusions> 
      <module name="org.apache.log4j" slot="main"/> 
     </exclusions> 
    </deployment> 
</jboss-deployment-structure> 

Mam nawet próbował zmieniać mój standalone.conf.bat plik dodając następujący wiersz:

set "JAVA_OPTS=%JAVA_OPTS% -Dorg.jboss.as.logging.per-deployment=false" 

Moje wdrożenie aplikacji wygląda następująco:

-> MyAppEAR.ear 
    -> META-INF 
     -> MANIFEST.MF 
    -> MyAoo.war 
     -> META-INF 
     -> MANIFEST.MF 
     -> jboss-deployment-structure.xml 
     -> WEB-INF 
     -> web.xml 
     -> lib 
      -> log4j-1.2.17.jar 
      -> --- 
     -> classes 
      -> log4j.xml 
      -> ... 

Zauważyłem następujący błąd:

  • JBoss rozmieszczeniem-structure.xml w subdeployment ignorowane. jboss-deployment-structure.xml jest analizowany tylko w przypadku wdrożeń na najwyższym poziomie.

Próbowałem nawet migracji z JBoss 7.1.0 do 7.1.1

Niektóre pomóc proszę!

Dzięki


Dzięki za repply Jamesa.

Zrobiłem to, co powiedział i przesunął JBoss-rozmieszczenie-structure.xml plik MyAppEAR.ear/META-INF.

Zauważyłem, że w ten sposób wyjątek:

jboss-deployment-structure.xml in subdeployment ignored. jboss-deployment-structure.xml is only parsed for top level deployments. 

... nie występuje. Nie wiem, czy to oznacza, że ​​plik został sparsowany ... jak mogę powiedzieć?

Pomimo tego nowego zachowania plik konfiguracyjny log4j.xml nadal nie jest załadowany, a rejestrator nadal używany to Log4J.

Znam ten becaused pisałem do konsoli:

System.out.println(Logger.getRootLogger().getClass().toString()) 

... i otrzymała:

class org.jboss.logmanager.log4j.BridgeLogger 

Ja również próbowałem:

  • porusza moje log4j .xml do MyAppEAR.ear/META-INF.
  • usunięcie niepotrzebnego -Dorg.jboss.as.logging.Per-rozmieszczenia = false z standalone.conf.bat
  • usuwania gniazdo z mojego JBoss rozmieszczeniem-structure.xml

Jeszcze jakieś pomysły?

Dzięki

Odpowiedz

5

Hi RedEagle zobaczyć następującą konfigurację które ja testowałem i jego pracy w porządku ...
Krok 1 Utwórz nowy moduł jak

jboss-as-7.1.1.Final/modules/ com/firma/mylog/main/

      -module.xml 
          -log4j-1.2.14.jar 

Content of module.xml 


<?xml version="1.0" encoding="UTF-8"?> 
     <module xmlns="urn:jboss:module:1.0" name="com.company.mylog"> 
    <resources> 
     <resource-root path="log4j-1.2.14.jar"/> 
    </resources> 
    <dependencies> 
     <module name="javax.api"/> 
     </dependencies> 
     </module> 

Krok 2 Teraz w my.ear/META-INF/

  -jboss-deployment-structure.xml 
      -MANIFEST.MF 

zawartość jboss rozmieszczeniem-structure.xml

<jboss-deployment-structure> 
       <deployment> 

        <exclusions> 
        <module name="org.apache.log4j" /> 
        </exclusions> 

       </deployment> 


       <sub-deployment name="MyWeb.war"> 
        <exclusions> 
        <module name="org.apache.log4j" /> 
        </exclusions> 
       </sub-deployment> 

       <sub-deployment name="MyBeans.jar"> 
       <exclusions> 
        <module name="org.apache.log4j" /> 
       </exclusions> 
       </sub-deployment> 


       </jboss-deployment-structure> 

Treść MANIFEST.MF

 Manifest-Version: 1.0 
     Dependencies: com.company.mylog 

Etap 3 Zawartość MyLogger.java

public static Logger getLogger(String name) { 

    Logger logger= LogManager.getLogger(name); 
    PropertyConfigurator.configure("log4j.properties"); //Path to log4j.properties as many option available in my case for testing i used static path /home/gyani/log4j.properties 
    return logger; 
} 

Step- 4 Oto log4j.properties

log4j.rootLogger=info,gyani 
log4j.appender.gyani=org.apache.log4j.RollingFileAppender 
log4j.appender.gyani.File=/home/gyani/myserverlog.log 
log4j.appender.gyani.Append=true 
log4j.appender.gyani.MaxFileSize=100000KB 
log4j.appender.gyani.MaxBackupIndex=10 
log4j.appender.gyani.layout=org.apache.log4j.PatternLayout 
log4j.appender.gyani.layout.ConversionPattern=[%d{MMM d HH:mm:ss yyyy}] [%-5p] [%c]: %m%n 
+2

Dzięki gYanl! To się udało! Nie musiałem nawet wykonywać tych wszystkich kroków. Wszystko, co zrobiłem, to stworzyć plik jboss-deployment-structure.xml w folderze META-INF EAR. – RedEagle

1

Twoje jboss-deployment-structure.xml musi być w katalogu MyAppEAR.ear/META-INF. W tym przypadku nie ma również potrzeby atrybutu slot.

Również -Dorg.jboss.as.logging.per-deployment=false nie jest używany w JBoss AS 7.1.1.Final, ale też niczego nie boli.

+0

Witaj James. Więcej pomysłów? Dzięki – RedEagle

+0

Spróbuj przenieść bibliotekę log4j do MyAppEAR.ear/lib. –

+0

Jeszcze raz dziękuję James. Próbowałem, ale bez powodzenia jeszcze raz ... – RedEagle