1

Jboss 7.1 を使用したエンタープライズ Java プロジェクトがあります。

EAR に log4j を追加しました。

<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
     <version>1.2.17</version>
</dependency>

今、 logger.error() はうまくいきます。しかし logger.debug は機能していません。これについてどう思いますか?..デバッグを有効にする方法は?

@Startup 
@Stateless
import org.apache.log4j.Logger;
public class MyClass{

    public static final Logger logger = Logger.getLogger(MyClass.class.getSimpleName());

    @PostConstruct
    private void invoke() {
           logger.error("error ");
       logger.debug("debug");
        }
}
4

2 に答える 2

1

log4j は log4j jar を出荷しませんか? 使用しているstandalone.xmlまたは構成ファイルで構成を確認します。

ロギングサブシステムを検索し、

例えば

<subsystem xmlns="urn:jboss:domain:logging:1.1">

以下に示すようにルートロガーのレベル名を FINER に設定し、再実行して確認します。

        <root-logger>
            <level name="DEBUG"/>
            <handlers>
                <handler name="CONSOLE"/>
                <handler name="FILE"/>
            </handlers>
        </root-logger>

アペンダーを追加するには?

パッケージ xyz のクラス ABC の Logger オブジェクトを次のように初期化しているとします。

Logger LOG = LoggerFactory.getLogger(ABC.class);

したがって、同じもののアペンダーは次のようになります。

        <logger category="x.y.z">
            <level name="DEBUG"/>
        </logger>

また

        <logger category="x.y">
            <level name="DEBUG"/>
        </logger>

また

        <logger category="x">
            <level name="DEBUG"/>
        </logger>

必要な粒度のレベルによって異なります。

于 2013-04-15T10:59:35.620 に答える
0

Jboss には、ランタイムをオーバーライドできない独自のバインダーがあります。適切なデバッグ レベルで log4j.properties を追加したことを確認してください。Jbossがlog4jバインダーを使用しているか、独自のバインダーを使用しているかを判断できるように、その中でfileappenderを使用してみてください。

于 2013-04-15T11:00:21.577 に答える