2013-01-06 90 views
8

私のXML log4j設定ファイルで定義されているアペンダを使用してログを記録するのに問題があります。JBoss 7.1.1でアプリケーションのLog4J設定を使用する

jboss-deployment-structure.xmlを、自分のEARのMETA-INFフォルダに作成しました。

のjboss-展開するstructure.xml構造は次のとおりです。

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

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

私も次の行を追加し、私のstandalone.conf.batファイルを編集しようとしています

私のアプリケーションの展開は次のようなものです:

01無視サブデプロイメントで

  • のjboss-展開するstructure.xml:

    は、私は次のようなエラーが気づきました。 jboss-deployment-structure.xmlは、最上位の配備のためにのみ解析されます。

私もJBOSS 7.1.0からしてくださいいくつかの助け

7.1.1に移行してみました!

おかげ


repplyジェームズいただきありがとうございます。

私はあなたが言ったことをやったとMyAppEAR.ear/META-INFのjboss-展開するstructure.xmlファイルを移動しました。

私はこの方法が例外ことに気付きました:

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

...は発生しません。ファイルが解析されたことを意味するのかどうかわかりません...どのように伝えることができますか?

この新しい動作にもかかわらず、私のlog4j.xml構成ファイルはまだロードされず、使用されるロガーはまだLog4Jです。

私はこれは私がコンソールに書いたbecaused知っている:

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

...となった:

class org.jboss.logmanager.log4j.BridgeLogger 

私も試してみた:

  • を私のlog4jを動かします.xmlMyAppEAR.ear/META-INF
  • 不要にする-Dorg.jboss.as.logging。展開-あたり= falseをスロット

のjboss-展開するstructure.xmlから任意のより多くのアイデアを取り除く

  • standalone.conf.bat から?

    おかげ

    答えて

    5

    こんにちはRedEagle
    ...私がテストし、その作業罰金てきた以下の構成を参照してください。ステップ-1

    jboss-as-7.1.1.Final/modules/として新しいモジュールを作成します。 COM /会社/ mylog /メイン/

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

    ステップ-2 my.earようになりまし /META-INF/

    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; 
    } 
    

    のMANIFEST.MF

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

    ステップ-3 コンテンツのJBossの-展開する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> 
    

    コンテンツの

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

    コンテンツステップ - 4 ここに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

    ありがとうgYanl!それはうまくいった!私はそれらのステップすべてに行く必要はありませんでした。私がしたことは、EARのMETA-INFフォルダにjboss-deployment-structure.xmlを作成することでした。 – RedEagle

    1

    あなたjboss-deployment-structure.xmlニーズは、あなたのMyAppEAR.ear/META-INFディレクトリにあります。この場合にはslot属性も必要ありません。

    また、-Dorg.jboss.as.logging.per-deployment=falseは、JBoss AS 7.1.1.Finalでは使用されていませんが、何も傷つけることはありません。

    +0

    こんにちはJames。これ以上のアイデアは? Thanks – RedEagle

    +0

    log4jライブラリをMyAppEAR.ear/libに移動してみてください。 –

    +0

    Jamesにもう一度感謝します。試してみましたが、もう一度成功しませんでした... – RedEagle

    関連する問題