Файл свойств commons-logging и log4j
Я пытаюсь использовать 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 ответа
Файл commons-logging.properties
только чтение из общего журнала, пока log4j будет искать log4j.configuration
в свойствах системы.
Таким образом, вы должны либо указать их с -Dlog4j.configuration=log4j-test.properties
в командной строке в качестве опции JVM или вы должны вызвать System.setProperty()
перед первым вызовом любого метода журналирования (что обычно довольно трудно достичь).
Примечание: если вы можете, используйте конфигурацию XML log4j.xml
; это намного проще и мощнее для настройки log4j.
Вам необходимо добавить протокол в начало значения свойства System, например: -Dlog4j.configuration=file://log4j-test.properties
Без протокола это будет выглядеть в classpath.
jul - com-logging, нравится твоя ситуация.
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");