файл свойств commons-logging и log4j - PullRequest
       12

файл свойств commons-logging и log4j

11 голосов
/ 06 октября 2009

Я пытаюсь использовать log4j через commons-logging и у меня возникают проблемы, если файл свойств log4j не называется log4.properties. Я получаю следующую ошибку: log4j: ПРЕДУПРЕЖДЕНИЕ Не удалось найти ни одного дополнительного устройства для ведения журнала (LogMePlease). log4j: WARN Пожалуйста, правильно инициализируйте систему log4j.

Мой код очень прост:

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

public class LogMePlease 
{
static Log l = LogFactory.getLog(LogMePlease.class);

public static void main(String [] args)
{
    l.warn("Hello World!");
}
}

В моем классе я имею: commons-logging.properties файл, который содержит следующие записи

org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger
log4j.configuration=log4j-test.properties

и log4j-test.properties файл

когда я запускаю этот код, я получаю

log4j:WARN No appenders could be found for logger (LogMePlease).
log4j:WARN Please initialize the log4j system properly.

Если я переименую файл log4j-test.properties в log4j.properties - тогда все работает. Итак, вопрос заключается в том, как настроить ведение журнала для общего использования на произвольное имя файла log4j.properties.

Ответы [ 3 ]

10 голосов
/ 06 октября 2009

Файл commons-logging.properties читается только из регистрации общего достояния, в то время как log4j будет искать log4j.configuration в системных свойствах.

Таким образом, вы должны либо указать их с помощью -Dlog4j.configuration=log4j-test.properties в командной строке в качестве параметра JVM, либо вы должны вызвать System.setProperty() перед первым вызовом любого метода ведения журнала (что обычно довольно сложно осуществить).

Примечание. Если можно, используйте конфигурацию XML log4j.xml; это намного проще и мощнее для настройки log4j.

1 голос
/ 10 октября 2013

Вам необходимо добавить протокол в начало значения свойства System, например: -Dlog4j.configuration = file: //log4j-test.properties

Без протокола он будет выглядеть в пути к классам.

0 голосов
/ 31 июля 2014

июл - регистрация общего пользования , вам нравится ваша ситуация.

org.apache.commons.logging.LogFactory=org.apache.commons.logging.impl.LogFactoryImpl
#org.apache.commons.logging.Log=org.apache.commons.logging.impl.Jdk14Logger
#org.apache.commons.logging.Log=org.apache.commons.logging.impl.SimpleLog
org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger

установить log4j.properties перед экземпляром журнала.

System.setProperty("log4j.configuration", "log4j.properties");
...