Получить журнал от LoggerFactory - PullRequest
0 голосов
/ 15 мая 2019

Это возможно так просто, но я уже потратил много времени, чтобы найти какое-либо решение.

У меня есть

package net.rubyeye.xmemcached;

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

public class XMemcachedClient implements XMemcachedClientMBean, MemcachedClient {

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

С Log4j я получаю все журналы от apache-servicemix.

Я пробовал что-то вроде

log4j.logger.net.rubyeye.xmemcached.XMemcachedClient=All, xmemcachedLog

log4j.appender.xmemcachedLog=org.apache.log4j.RollingFileAppender
log4j.appender.xmemcachedLog.File=${karaf.data}/log/spring/xmemcachedLog.log
log4j.appender.xmemcachedLog.ImmediateFlush=true
log4j.appender.xmemcachedLog.maxFileSize = 10MB
log4j.appender.xmemcachedLog.maxBackupIndex = 10
log4j.appender.xmemcachedLog.layout=org.apache.log4j.PatternLayout
log4j.appender.xmemcachedLog.layout.ConversionPattern=%d{dd-MM-yyyy_HH:mm:ss} %-5p [%t] - %m%n

Но я ничего не понимаю.Я хочу получить информацию об исключении, которое я получаю в 1335-й строке

key = this.preProcessKey(key);

На самом деле, не имеет значения, что я хочу записывать именно этот класс.В моем приложении у меня также есть другие классы, которые имеют LoggerFactory.getLogger (...);

И главный вопрос - Как получить журналы из Logger log = LoggerFactory .getLogger (SomeClass.class);

Теперь мой rootLogger выглядит как

# Root logger 
log4j.rootLogger=info, out, sift, osgi:VmLogAppender 
log4j.throwableRenderer=org.apache.log4j.OsgiThrowableRenderer

Ответы [ 2 ]

0 голосов
/ 15 мая 2019

Нет проблем в моем логгере. У меня просто не было log.error () или log.smth (), поэтому в моих файлах нет строк.

Так что это будет работать, например, в этом методе внутри XMemcachedClient

public void setTimeoutExceptionThreshold(int timeoutExceptionThreshold) {
        if (timeoutExceptionThreshold <= 0) {
            throw new IllegalArgumentException(
                    "Illegal timeoutExceptionThreshold value "
                            + timeoutExceptionThreshold);
        }
        if (timeoutExceptionThreshold < 100) {
            log.warn("Too small timeoutExceptionThreshold value may cause connections disconnect/reconnect frequently.");
        }
        this.timeoutExceptionThreshold = timeoutExceptionThreshold;
    }

Это показывает мне "Слишком маленькое значение timeoutExceptionThreshold может вызывать частое отключение / повторное подключение." в моем файле $ {karaf.data} /log/spring/xmemcachedLog.log, когда timeoutExceptionThreshold <100 </strong>

0 голосов
/ 15 мая 2019

У вас должен быть файл logback.xml, в котором вы решите, показывать свой журнал или нет, если вы используете Java-приложение EE.

Попробуйте добавить в него следующую строку кода:

<logger name="net.rubyeye.xmemcached" level="DEBUG"/>

Он активирует журналы отладки для всех классов в этом пакете. Если он все еще не работает, возможно, у вас нет файла в вашем classpath, и вам, возможно, придется добавить его в параметр jvm.

...