logger.debug(s"Some expensive message: ${expensiveComputation()}")
scala
import com.typesafe.scalalogging.Logger
object MyLogLevels extends Enumeration {
val Notice = Value("NOTICE")
val Debug = Value("DEBUG")
}
val logger = Logger("MyLogger")
logger.setLogLevel(FINEST)
logger.log(MyLogLevels.Notice, "This is a notice message")
logger.log(MyLogLevels.Debug, "This is a debug message")
scala
import com.typesafe.scalalogging.slf4j._
import org.slf4j.LoggerFactory
import ch.qos.logback.classic.Level
object AsyncLoggerExample extends App {
val logger = Logger(LoggerFactory.getLogger("MyLogger"))
logger.withCustomLevel(Level.INFO).info("This is an asynchronous info message")
Thread.sleep(1000)
}
scala
import com.typesafe.scalalogging.Logger
object LoggingExample extends App {
val logger = Logger("MyLogger")
logger.info("This is an info message")
logger.warn("This is a warning message")
logger.error("This is an error message", new RuntimeException("Something went wrong!"))
}
<configuration>
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%date{yyyy-MM-dd HH:mm:ss} %level [%thread] %logger{15} - %msg%n</pattern>
</encoder>
</appender>
<root level="info">
<appender-ref ref="console" />
</root>
</configuration>