1

私はしばらく Log4j を非公式に使用してきましたが、現在は Logback に切り替えています。ロギング クラスの一貫性を確保するためにSpiffy を使用することに慣れてきました。

つまり、代わりに

private static final Logger log = Logger.getLogger( Foo.class );

また

private final Logger log = Logger.getLogger( this.getClass() );

そうです

private static final Logger log = LoggerHelper.getLogger();

Logbackでこれを行う同様の方法はありますか? この段階でSpiffyがどのように機能するかはわかりませんが、私はそれを使用しています。

4

2 に答える 2

3

Spiffy の LoggerHelper は、Throwable.getStackTraceメソッドを使用します。残念ながら、この方法は 100% 信頼できるものではありません。javadoc から:

一部の仮想マシンでは、状況によっては、スタック トレースから 1 つまたは複数のスタック フレームが省略される場合があります。

つまり、Spiffy の LoggerHelper は、誤った名前のロガーを返す可能性があります。これが発生すると、その発生をデバッグするのが非常に困難になります。

于 2011-03-30T14:25:38.993 に答える
3

通常、logback を直接使用することはありませんが、 slf4j を使用します。使用方法は次のとおりです。

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

class A
{
    private static final Logger logger = LoggerFactory.getLogger(A.class);

    public void method1()
    {
        logger.info("Hello world");
        ....
    }
}

次に、デプロイ中に、logback jar と構成を使用するためにクラスパスに入れることができます。

于 2011-03-30T08:57:59.080 に答える