Вход в Scala: что использовать при написании библиотеки - PullRequest
3 голосов
/ 26 сентября 2011

Есть вопросы ( здесь и здесь ) о том, какую библиотеку использовать для входа в Scala, но я бы хотел задать более конкретную версию вопроса.

Когда вы пишете библиотеку - то есть некоторый код, который станет частью множества различных приложений - у вас нет такой свободы выбора того, что вы хотите использовать.Если вы используете решение для ведения журнала, отличное от того, которое использовалось в остальной части приложения, тогда плохой разработчик приложения должен искать в двух (или более) местах свою информацию об отладке.Поэтому в идеале вы хотите использовать что-то, совместимое с наиболее используемыми решениями.

Из многих существующих решений для ведения журналов многие из них, похоже, проходят через slf4j .Означает ли это, что любое решение с использованием slf4j будет лучшим?Или slf4s ?

Ответы [ 2 ]

5 голосов
/ 26 сентября 2011

Да, используйте SLF4J или оболочку Scala.Таким образом, ваши клиенты могут выбрать фактическую реализацию ведения журнала.С этой точки зрения не имеет никакого значения, если вы используете обертку или интерфейс SLF4J напрямую.

Единственная реальная альтернатива - это common.logging, но она фактически заменена.

0 голосов
/ 26 сентября 2011

Я бы порекомендовал log4j. Это довольно популярно и очень гибко. Я использую это так:

java -Dlog4j.configuration=log4j.txt -cp .:app_name.jar com.your.program.Main

с файлом конфигурации в локальном каталоге как:

log4j.rootLogger=WARN, stdout, R

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

# Pattern to output the caller's file name and line number.
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n

log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=example.log

log4j.appender.R.MaxFileSize=100KB
# Keep one backup file
log4j.appender.R.MaxBackupIndex=1

log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d{ISO8601} %p %t %c - %m%n

log4j.logger.com.your.program=DEBUG
...