Завершить «Пример регистрации Scala»

3 ответа

7

IIRC он будет печатать сообщения, начиная с уровня информации по умолчанию. Чтобы изменить это, вам нужно поместить файл logback.xml в src/main/resources (или использовать параметр -Dlogback.configurationFile=/path/to/config.xml JVM). См. Конфигурация в документации по протоколированию.

    
ответ дан Alexey Romanov 16.03.2015 в 07:47
источник
30

Для тех, кто все еще борется за то, как сделать свою работу scala-logging в вашем проекте sbt. Им просто нужно выполнить следующие шаги:

  1. Добавьте эти две зависимости в свой build.sbt :

    libraryDependencies += "com.typesafe.scala-logging" %% "scala-logging" % "3.1.0"
    libraryDependencies += "ch.qos.logback" % "logback-classic" % "1.1.2"
    
  2. Создайте файл logback.xml в вашем / src / main / resources / и вставьте ниже упомянутый контент в этот файл.

    <configuration>
        <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
            <encoder>
                <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
            </encoder>
        </appender>
    
        <appender name="FILE" class="ch.qos.logback.core.FileAppender">
            <!-- path to your log file, where you want to store logs -->
            <file>/Users/yourusername/test.log</file>
            <append>false</append>
            <encoder>
                <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
            </encoder>
        </appender>
    
        <root level="debug">
            <appender-ref ref="STDOUT" />
            <appender-ref ref="FILE" />
        </root>
    </configuration>
    
  3. Расширьте класс или объект Scala с помощью свойства LazyLogging :

    import com.typesafe.scalalogging.slf4j.LazyLogging
    class MyClass extends LazyLogging {
      logger.debug("This is very convenient ;-)")
    }
    
  4. Сделано.

P.S: Только сторона примечания, что logger уже является участником класса LazyLogging, поэтому вам не нужно его создавать (как показано в приведенном выше примере)

    
ответ дан Vinay 14.08.2015 в 08:48
источник
2

Вы близки, но вы должны объявить экземпляр logger с использованием регистратора SLF4J в методе apply для Logger -компаньона в com.typesafe.scalalogging . В вашем build.sbt включены:

libraryDependencies += "com.typesafe.scala-logging" %% "scala-logging" % "3.1.0"

libraryDependencies += "org.slf4j" % "slf4j-api" % "1.7.10"

Тогда это будет работать:

import com.typesafe.scalalogging._
import org.slf4j.LoggerFactory

class MyClass extends LazyLogging {
  // ...
  val logger = Logger(LoggerFactory.getLogger(this.getClass))
  logger.debug("Here goes my debug message.")
  // ...
}

Здесь является ссылкой для LoggerFactory. Надеюсь, это поможет!

    
ответ дан Joseph Sawyer 16.03.2015 в 04:37
источник