2012-06-16 2 views
2

У меня есть приложение scala, которое очень просто. Все, что он делает, инициализирует регистратор и делает logger.info («Hello»). У меня есть файл log4j.properties в классе путь, который имеет следующие параметрыlog4j: WARN Отзывов не найдено

# Root logger option 
log4j.rootLogger=INFO, stdout 

# Direct log messages to stdout 
log4j.appender.stdout=org.apache.log4j.ConsoleAppender 
log4j.appender.stdout.Target=System.out 
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n 

Однако, когда я пытаюсь запустить приложение. Я получаю сообщение об ошибке log4j: WARN Для регистратора (app.TestApp $) не найдено ни одного приложения. log4j: WARN Пожалуйста, правильно инициализируйте систему log4j.

Что мне не хватает? Тем не менее, я получаю распечатываемые журналы, если у меня есть hasoop-core.jar в пути к классам (да, там тоже есть log4j)

ответ

6

Ваш конфигурационный файл log4J не находится в пути к классу, даже если вы так думаете. Самый простой способ решить эту проблему, чтобы добавить -Dlog4j.debug к параметрам VM, то Log4J будет проследить алгоритм, который он использует, чтобы найти свою конфигурацию:

scala -cp {yourclasspath} -Dlog4j.debug {yourscalaentrypoint} 

К сожалению, ответ @Jens' не поможет вам, когда вы 'запускает программу Scala, поскольку Scala не использует стандартное свойство Java-системы для хранения своего пути к классам. Когда вам нужно распечатать путь к классам, используемый для программы Scala, вы должны использовать что-то вроде this technique.

1

Похоже, что ваш файл свойств не найден в пути к классам. Распечатайте путь к классам (свойство System java.class.path), чтобы проверить, что происходит.

Смежные вопросы