Я только что прошел через "наказание со стороны ИДЕИ", и у меня есть это решение для вас ...
Добавьте Logback и slf4s к вашему POM:
<dependency>
<groupId>com.weiglewilczek.slf4s</groupId>
<artifactId>slf4s_${scala.version}</artifactId>
<version>1.0.7</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>0.9.30</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>0.9.30</version>
</dependency>
ПРИМЕЧАНИЯ:
Я использовал $ {scala.version} в arfactId slf4s - убедитесь, что вы определили это, или замените его на 2.9.1 или что-то в этом роде.
Кроме того - вам понадобится репозиторий scala-tools, доступный и для зависимостей, - который, как я полагаю, у вас будет, поскольку я думаю, что он вам нужен для компиляции.
Затем добавьте файл с именем logback.xml в папку ресурсов, содержащую это:
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%date,%d{HH:mm:ss.SSS},%thread,%-5level,%logger{36},%line,%msg%n</pattern>
</encoder>
</appender>
<root level="TRACE">
<appender-ref ref="STDOUT"/>
</root>
</configuration>
Мой паттерн здесь потенциально немного странный - на самом деле это файловый аппендир, который выкладывает его в виде CSV, который я могу легко открыть и отобразить в Excel.
Затем расширьте черту. Вход в ваше приложение выглядит так:
import swing._
import com.weiglewilczek.slf4s.Logging
object App extends SwingApplication with Logging {
override def startup(args: Array[String]) {
logger.info("Starting init...")
}
}
И в окне консоли должно появиться информационное сообщение «Запуск init ...» с кучей других вещей.
Logback и slf4s - это темы, на которые я ссылаюсь.
ВАЖНО И УДИВИТЕЛЬНО:
Я не могу вспомнить, как это называется, но методы журналирования, которые вы используете для публикации сообщений, имеют подписи типа info (message: => String) - как вы можете видеть в logger.scala .
Это означает, что переданное им выражение или блок не будут выполнены вообще , если соответствующий уровень ведения журнала не включен в файле конфигурации.
Так что он только добавляет вызов метода и проверку флага в код, когда он выключен - что довольно мило imho:)
Надеюсь, это поможет,
Сет.