2

log4j.properties を作成し、../WEB-INF/classes/ に挿入しました。これがプロパティ ファイルです。

# Define the root logger with appender FA
log4j.rootLogger=Debug,FA

# Define the file appender
log4j.appender.FA=org.apache.log4j.FileAppender

# Set the name of the file
log4j.appender.FA.File=c:\log.log
log4j.appender.MaxFileSize=50MB

# Set the immediate flush to true
log4j.appender.FA.ImmediateFlush=true

# Define the layout for file appender
log4j.appender.FA.layout=org.apache.log4j.PatternLayout
log4j.appender.FA.layout.ConversionPattern=%d{MM/dd HH\:mm\:ss} %-5p %30.30c %x - %m\n

起動時に実行されるクラスに単純な LOG ステートメントがあります。コンソールに表示されているので、LOG ステートメントは正常に機能しています。

JBoss 5.1の内部Log4jが優先されているようで、オンラインで見つけたものは何も修正していません。

試して報告できる提案、または提供する必要がある追加情報はありますか?

みんな、ありがとう!

編集:

プロパティファイルからxmlに変更しました。ここにxmlがあります

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

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

    <appender name="console" class="org.apache.log4j.ConsoleAppender">
        <param name="Threshold" value="INFO" />
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%-5p %c{1} - %m%n" />
        </layout>
    </appender>

    <appender name="fileAppender" class="org.apache.log4j.FileAppender">
        <param name="Threshold" value="INFO" />
        <param name="file" value="program.log" />
        <param name="append" value="true"/>
            <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%-5p %c{1} - %m%n" />
        </layout>
    </appender>

    <logger name="com.program">
        <level value="debug" />
        <appender-ref ref="console"/>
        <appender-ref reg="fileAppender" />
    </logger>


</log4j:configuration>

会社名とプログラムの名前を「com.program」に変更したので、これらは単なるプレースホルダーです。

編集:

ディレクトリ構造は次のとおりです。

src
 ---main
    ---java
    ---resources
    ---webapp
       ---META-INF
       ---WEB-INF
          ---classes
             +log4j.xml
          +jboss-deployment-structure.xml

Maven pom.xml

        <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.17</version>
        <scope>provided</scope>
    </dependency>
4

3 に答える 3

3

必ず入れjboss-deployment-structure.xmlてくださいWEB-INF

構成jboss-deployment-structure.xml

<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.0">
  <deployment>
        <exclusions>
            <module name="org.apache.log4j" />
        </exclusions>       
  </deployment>  
</jboss-deployment-structure> 
于 2012-10-19T16:31:34.297 に答える
1

この問題には 2 つの解決策があります。

デフォルトの jboss log4j プロパティ ファイルは、アプリケーションの log4j プロパティ ファイルよりも優先されます。これは、クラスローダーが次の順序でリソースをロードするためです。

bootstrap > system > common > webapp

あなたはできる

  1. 既存の conf/log4j.xml を自分のコピーに置き換えて、ロギングのニーズをすぐに実行できるようにします。これは迅速で汚い解決策です。
  2. または、 http://docs.jboss.org/process-guide/en/html/logging.htmlで説明されているロギングを微調整することで、この問題を処理できます。
于 2012-10-28T18:47:32.597 に答える
0

私はそれを考え出した。Maven が lib フォルダーに log4j.jar を追加されませんでした。もっと早くキャッ​​チする必要がありましたが、すべて設定されています!!!

于 2012-10-22T21:05:56.483 に答える