8

XMLlog4j構成ファイルで定義されたアペンダーを使用してログに記録できません。

EARのMETA-INFフォルダーにjboss-deployment-structure.xmlを作成しましたが、成功しませんでした。

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

<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ファイルを編集しようとしました。

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

私のアプリケーションのデプロイは次のようになります。

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

次のエラーに気づきました。

  • サブデプロイメントのjboss-deployment-structure.xmlは無視されます。jboss-deployment-structure.xmlは、トップレベルのデプロイメントに対してのみ解析されます。

JBOSS7.1.0から7.1.1に移行してみました

助けてください!

ありがとう


ジェームズに感謝します。

私はあなたが言ったことを実行し、jboss-deployment-structure.xmlファイルをMyAppEAR.ear/META-INFに移動しました。

私はこのように例外に気づきました:

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

...発生しません。それがファイルが解析されたことを意味するかどうかはわかりません...どうすればわかりますか?

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

私はコンソールに書いたのでこれを知っています:

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

...そして得た:

class org.jboss.logmanager.log4j.BridgeLogger

私も試しました:

  • log4j.xmlMyAppEAR.ear/META-INFに移動します。
  • 不要な-Dorg.jboss.as.logging.per-deployment=falsestandalone.conf.batから削除します
  • jboss-deployment-structure.xmlからスロットを削除します

他にアイデアはありますか?

ありがとう

4

2 に答える 2

5

こんにちはRedEagleは、私がテストした次の構成とその正常に動作していることを確認します...
ステップ-1次のように 新しいモジュールを作成します

jboss-as-7.1.1.Final / modules / com / company / 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>

ステップ-2 今my.ear/META-INF/

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

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

MANIFEST.MFの内容

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

ステップ -3MyLogger.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;
}

ステップ-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
于 2013-01-15T12:42:19.637 に答える
1

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

また、-Dorg.jboss.as.logging.per-deployment=falseJBoss AS 7.1.1.Finalでは使用されていませんが、何も害はありません。

于 2013-01-07T23:30:44.823 に答える