2013-01-06 28 views
8

Tôi đang gặp sự cố khi ghi nhật ký bằng cách sử dụng các ứng dụng của tôi được xác định trên tệp cấu hình XML log4j của tôi.Sử dụng cấu hình Log4J của ứng dụng dưới JBoss 7.1.1

Tôi đã tạo jboss-deployment-structure.xml trên thư mục META-INF của EAR không thành công.

Các JBoss-triển khai-structure.xml cấu trúc là:

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

Tôi thậm chí đã cố gắng để sửa standalone.conf.bat tập tin của tôi thêm dòng sau:

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

Triển khai ứng dụng của tôi như sau:

-> 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 
      -> ... 

tôi đã nhận thấy lỗi sau:

  • JBoss-triển khai-structure.xml trong subdeployment bỏ qua. jboss-deployment-structure.xml chỉ được phân tích cú pháp để triển khai cấp cao nhất.

Tôi thậm chí đã cố gắng chuyển từ JBOSS 7.1.0 đến 7.1.1

Một số sự giúp đỡ xin vui lòng!

Cảm ơn


Cảm ơn đã repply James.

tôi đã làm những gì bạn nói và di chuyển JBoss-triển khai-structure.xml tập tin để MyAppEAR.ear/META-INF.

tôi đã nhận thấy rằng cách này ngoại trừ:

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

... không xảy ra. Tôi không biết điều đó có nghĩa là tệp đã được phân tích cú pháp ... làm sao tôi có thể nói?

Mặc dù hành vi mới này của tôi log4j.xml tệp cấu hình vẫn chưa được tải và trình ghi nhật ký được sử dụng vẫn là của Log4J.

Tôi biết điều này do vậy rất tôi đã viết ra cửa sổ Console:

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

... và nhận được:

class org.jboss.logmanager.log4j.BridgeLogger 

Tôi cũng đã thử:

  • di chuyển log4j của tôi .xml đến MyAppEAR.ear/META-INF.
  • xóa -Dorg.jboss.as.logging không cần thiết.mỗi triển khai = false từ standalone.conf.bat
  • loại bỏ khe từ tôi JBoss-triển khai-structure.xml

Bất kỳ ý tưởng nhiều hơn?

Cảm ơn

Trả lời

5

Hi RedEagle thấy cấu hình sau đây mà tôi đã thử nghiệm và làm việc của mình tốt ...
Bước-1 Tạo một module mới như

jboss-as-7.1.1.Final/modules/ com/công ty/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> 

Bước-2 Bây giờ TRÊN my.ear/META-INF/

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

nội dung của JBoss-triển khai-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> 

Nội dung của MANIFEST.MF

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

Bước-3 Nội dung 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; 
} 

Bước- 4 Đây là 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

Cảm ơn gYanl! Điều đó đã hiệu quả! Tôi thậm chí không cần đến tất cả các bước đó. Tất cả những gì tôi đã làm là tạo ra tệp jboss-deployment-structure.xml trên thư mục META-INF của EAR. – RedEagle

1

jboss-deployment-structure.xml nhu cầu của bạn là trong thư mục MyAppEAR.ear/META-INF của bạn. Cũng không cần thuộc tính slot cho trường hợp này.

Ngoài ra, -Dorg.jboss.as.logging.per-deployment=false không được sử dụng trong JBoss AS 7.1.1.Final, nhưng cũng không ảnh hưởng gì cả.

+0

Xin chào James. Còn ý tưởng nào nữa không? Cảm ơn – RedEagle

+0

Thử di chuyển thư viện log4j sang MyAppEAR.ear/lib. –

+0

Cảm ơn một lần nữa James. Đã thử điều đó, nhưng không thành công một lần nữa ... – RedEagle

Các vấn đề liên quan