72.scala编程思想笔记——记日志
欢迎转载,转载请标明出处:blog.csdn.net/notbaron/ar…
源码下载连接请见第一篇笔记。\
记日志就是指记录这些事件,使得应用的程序员和管理员得到另一种发现问题的工具。
可以采用Java内建的日志记录机制。例如:
package com.atomicscala
import java.util.logging._
trait Logging {
val log =Logger.getLogger(".")
log.setUseParentHandlers(false)
log.addHandler(
newFileHandler("AtomicLog.txt"))
log.addHandler(new ConsoleHandler)
log.setLevel(Level.ALL)
log.getHandlers.foreach(
_.setLevel(Level.ALL))
deferror(msg:String) = log.severe(msg)
defwarn(msg:String) = log.warning(msg)
definfo(msg:String) = log.info(msg)
defdebug(msg:String) = log.fine(msg)
deftrace(msg:String) = log.finer(msg)
}
JAVA的日志记录包中包含记录器,可以向其写入消息,还包含处理器,可以将消息记录到它们各自的介质中。
可以将日志记录级别设置为 Level.ALL,以便展示所有消息,其他级别会展示更少的消息。
使用上述代码的库,如下:
import com.atomicscala.Logging
class LoggingTest extends Logging {
info("Constructing a LoggingTest")
def f = {
trace("entering f")
// ...
trace("leaving f")
}
def g(i:Int)= {
debug(s"inside g with i: $i")
if(i <0)
error("i less than 0")
if(i >100)
warn(s"i getting high: $i")
}
}
val lt = new LoggingTest
lt.f
lt.g(0)
lt.g(-1)
lt.g(101)
运行程序后,查看AtomicLog.txt文件。
日志文件通过XML书写,目的是易于处理和组装。