Scala: пытается заставить работать log4j - PullRequest
0 голосов
/ 09 января 2011

Scala newb здесь (это мой второй день использования).Я хочу, чтобы log4j работал в моем скрипте Scala.Сценарий и результаты ниже, есть идеи, что происходит не так?

[sean@ibmp2 pybackup]$ cat backup.scala
import org.apache.log4j._

val log = LogFactory.getLog()

log.info("started backup")
[sean@ibmp2 pybackup]$ scala -cp log4j-1.2.16.jar:. backup.scala
/home/sean/projects/personal/pybackup/backup.scala:1: error: value apache is not a member of package org
import org.apache.log4j._
           ^
one error found

Ответы [ 5 ]

2 голосов
/ 10 января 2011

Я воспроизвожу это под Windows: разделитель '-classpath' должен быть ';'там (не ':').Вы используете cygwin или какой-нибудь эмулятор unix?

Но скрипт Scala работает где угодно без текущего dir в classpath.Попробуйте использовать:

$ scala -cp log4j-1.2.16.jar backup.scala

JFI: LogFactory - это класс библиотеки slf4j (не log4j).

ОБНОВЛЕНИЕ

Еще один возможный случай: сломанный jar в classpath, может быть, во время загрузки или что-то еще.Интерпретатор Scala сообщает только о недоступном члене пакета.

$ echo "qwerty" > example.jar
$ scala -cp example.jar backup.scala
backup.scala:1: error: value apache is not a member of package org
...

Необходимо проверить содержимое jar-файла:

$ jar -tf log4j-1.2.16.jar
...
org/apache/log4j/Appender.class
...
1 голос
/ 10 января 2011

Вы не забыли поместить log4j.jar в ваш путь к классу?

0 голосов
/ 09 мая 2011

Была похожая проблема, когда начинал заниматься Scala Development с использованием Eclipse, чистая сборка решала проблему.

Думаю, инструменты Scala еще не созрели и т. Д.

0 голосов
/ 08 марта 2011

Я сам задавал и отвечал на этот вопрос , посмотрите:

Поместите его под src/main/resources/logback.xml. Он будет скопирован в нужное место, когда SBT выполняет сборку артефакта.

0 голосов
/ 10 января 2011

Вместо непосредственного использования log4j, вы можете попробовать использовать Configgy . Это Scala Way ™ для работы с log4j, а также с файлами конфигурации. Он также хорошо играет с SBT и Maven.

...