Log
===
Use object xitrum.Log directly
------------------------------
From anywhere, you can call like this directly:
::
xitrum.Log.debug("My debug msg")
xitrum.Log.info("My info msg")
...
Use trait xitrum.Log
--------------------
If you want to have the information about where (which class) the log has been
made, you should extend trait xitrum.Log:
::
package my_package
import xitrum.Log
object MyModel extends Log {
log.debug("My debug msg")
log.info("My info msg")
...
}
In file log/xitrum.log you will see that the log messages comes from ``MyModel``.
Xitrum actions extend trait xitrum.Log, so in actions, you can do write:
::
log.debug("Hello World")
Don't have to check log level before logging
--------------------------------------------
``xitrum.Log`` is based on `SLF4S `_ (`API `_),
which is in turn based on `SLF4J `_.
Traditionally, before doing a heavy calculation to get a result to log, you have
to check log level to avoid wasting CPU to do the calculation.
`SLF4S automatically does the check `_,
so you don't have to do the check yourself.
Before (this code doesn't work for the current Xitrum 3.13+ any more):
::
if (log.isTraceEnabled) {
val result = heavyCalculation()
log.trace("Output: {}", result)
}
Now:
::
log.trace(s"Output: #{heavyCalculation()}")
Config log level, log output file etc.
--------------------------------------
In build.sbt, there's a line like this:
::
libraryDependencies += "ch.qos.logback" % "logback-classic" % "1.1.2"
This means that `Logback `_ is used by default.
Logback config file is at ``config/logback.xml``.
You may replace Logback with any other implementation of `SLF4J `_.
Log to Fluentd
--------------
`Fluentd `_ is a very popular log collector. You can
configure Logback to send log (maybe from many places) to a Fluentd server.
First, add `logback-more-appenders `_
library to your project:
::
libraryDependencies += "org.fluentd" % "fluent-logger" % "0.2.11"
resolvers += "Logback more appenders" at "http://sndyuk.github.com/maven"
libraryDependencies += "com.sndyuk" % "logback-more-appenders" % "1.1.0"
Then, in ``config/logback.xml``:
::
...
mytaglocalhost2422420000
...