Log === Sử dụng trực tiếp đối tượng xitrum.Log -------------------------------------- Từ bất kỳ đâu, bạn có thể gọi một cách trực tiếp như sau: :: xitrum.Log.debug("My debug msg") xitrum.Log.info("My info msg") ... Sử dụng trait xitrum.Log ------------------------ Nếu bạn muốn biết log tạo bởi class nào, bạn nên kế thừa trait xitrum.Log: :: package my_package import xitrum.Log object MyModel extends Log { log.debug("My debug msg") log.info("My info msg") ... } Trong tệp log/xitrum.log bạn sẽ thấy log message đến từ ``MyModel``. Xitrum action kế thừa trait xitrum.Log, vì thế trong action, bạn có thể viết: :: log.debug("Hello World") Không phải kiểm tra log level trước khi log ------------------------------------------- ``xitrum.Log`` dựa trên `SLF4S `_ (`API `_), ``SLFS4`` lại được xây dựng trên `SLF4J `_. Thông thường, trước khi thực thi một phép tính lớn để log result, bạn phải kiểm tra log level để hạn chế lãng phí CPU cho phép tính. `SLF4S tự động thực hiện việc kiểm tra `_, do đó bạn không cần phải tự kiểm tra. Trước đó (đoạn mã này không còn chạy với bản Xitrum hiện tại 3.13+): :: if (log.isTraceEnabled) { val result = heavyCalculation() log.trace("Output: {}", result) } Hiện tại: :: log.trace(s"Output: #{heavyCalculation()}") Cấu hình log level ------------------ Trong tệp build.sbt, có một dòng như sau: :: libraryDependencies += "ch.qos.logback" % "logback-classic" % "1.1.2" Dòng này có nghĩa rằng : mặc định `Logback `_ được sử dụng. Tệp cấu hình Logback nằm tại ``config/logback.xml``. Bạn có thể thay thế Logback bằng bất kì implementation nào khác của `SLF4J `_. Log vào Fluentd -------------- `Fluentd `_ là một bộ thu thập log phổ biến. Bạn có thể cấu hình Logback để gửi log (từ nhiều nơi) đến một Fluentd server. Đầu tiên, thêm thư viện `logback-more-appenders `_ vào trong 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" Sau đó trong tập tin ``config/logback.xml``: :: ... mytag localhost 24224 20000 ...