SORU
24 Temmuz 2012, Salı


Nasıl Hazırda 4 SLF4J kullanmak için günlük kaydını yapılandırmak mı

Hazırda Beklet 3.x günlüğü kullanılmış. Hazırda 4.x kullanır. Hazırda 4, ve giriş için SLF4J kullanan bağımsız bir uygulama yazıyorum.

Nasıl SLF4J giriş yapmak için Hazırda yapılandırabilirsiniz?

Eğer bu mümkün değilse, nasıl Hazırda yapılandırabilirsiniz günlüğü hiç?

Uyku 4.1 manuel section on logging bu uyarı ile başlıyor

Tamamen güncel. Uyku Günlüğü JBoss 4.0 başlayarak kullanır. Bu Geliştirici Rehberlik etmek için bu içerik taşıma olarak belgelenmiş alacak.

işe yaramaz. bu yüzden SLF4J ve hakkında konuşmaya devam ediyor. Ne getting started guide ne günlüğü developer guide konuşma. Ne migration guide yapar.

Jboss-günlük kendisi ile ilgili belgelere baktım, ama hiç bulmak mümkün olmamıştır. ** 18, ve JBoss community projects page hatta jboss-günlük liste yok. bug tracker th herhangi bir sorun belgeleri sağlayarak ilgili olabilir, ama değil mi merak ettim.

İyi haber Hazırda 4 kullanırken uygulama sunucusu olarak JBoss AS7 içinde, büyük ölçüde günlük bakım alınır. Ama nasıl tek başına bir uygulama olarak yapılandırabilirsiniz?

CEVAP
21 EKİM 2013, PAZARTESİ


https://github.com/jboss-logging/jboss-logging/blob/master/src/main/java/org/jboss/logging/LoggerProviders.java bak:

static final String LOGGING_PROVIDER_KEY = "org.jboss.logging.provider";

private static LoggerProvider findProvider() {
    // Since the impl classes refer to the back-end frameworks directly, if this classloader can't find the target
    // log classes, then it doesn't really matter if they're possibly available from the TCCL because we won't be
    // able to find it anyway
    final ClassLoader cl = LoggerProviders.class.getClassLoader();
    try {
        // Check the system property
        final String loggerProvider = AccessController.doPrivileged(new PrivilegedAction<String>() {
            public String run() {
                return System.getProperty(LOGGING_PROVIDER_KEY);
            }
        });
        if (loggerProvider != null) {
            if ("jboss".equalsIgnoreCase(loggerProvider)) {
                return tryJBossLogManager(cl);
            } else if ("jdk".equalsIgnoreCase(loggerProvider)) {
                return tryJDK();
            } else if ("log4j".equalsIgnoreCase(loggerProvider)) {
                return tryLog4j(cl);
            } else if ("slf4j".equalsIgnoreCase(loggerProvider)) {
                return trySlf4j();
            }
        }
    } catch (Throwable t) {
    }
    try {
        return tryJBossLogManager(cl);
    } catch (Throwable t) {
        // nope...
    }
    try {
        return tryLog4j(cl);
    } catch (Throwable t) {
        // nope...
    }
    try {
        // only use slf4j if Logback is in use
        Class.forName("ch.qos.logback.classic.Logger", false, cl);
        return trySlf4j();
    } catch (Throwable t) {
        // nope...
    }
    return tryJDK();
}

org.jboss.logging.provider için olası değerler: jboss, , *, *jdk*6 7*.

Eğer org.jboss.logging.provider set musun diye jboss çalışır, sonra log4j, slf4j eğer model alınarak kullanılan (sadece) ve sonra geri dönüş olduğunu gördüm.

logback-classic slf4j kullanın:

    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>1.0.13</version>
        <scope>${logging.scope}</scope>
    </dependency>

ve tüm iyi çalışıyor!

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Bennythecoder

    Bennythecode

    25 Mart 2008
  • JamesAtiPhone

    JamesAtiPhon

    16 EYLÜL 2010
  • The Exploiteers

    The Exploite

    4 Ocak 2011