2
我想用Scala監視一個日誌文件。日誌的具體問題是,您還需要能夠考慮logrotation(這是Linux尾部的基本功能之一)。Scala拖尾文件的方式
我知道純Java有Tailer,但我想知道是否有類似的Scala實現。
我想用Scala監視一個日誌文件。日誌的具體問題是,您還需要能夠考慮logrotation(這是Linux尾部的基本功能之一)。Scala拖尾文件的方式
我知道純Java有Tailer,但我想知道是否有類似的Scala實現。
從它的外觀很容易包裝在斯卡拉。
object ScalaTailer {
private val DefaultBufSize = 4096
def apply(file: File, onFileNotFound: => Unit =(), onFileRotated: => Unit =(),
handleException: Exception => Unit =(), handleLine: String => Unit =(),
delayMillis: Long = 1000, end: Boolean = false, reOpen: Boolean = false,
bufSize: Int = DefaultBufSize) = {
val listener = new TailerListener {
override def fileNotFound() = onFileNotFound
override def fileRotated() = onFileRotated
override def handle(ex: Exception) = handleException(ex)
override def handle(line: String) = handeLine(line)
}
new Tailer(file, listener, delayMillis, end, reOpen, bufSize)
}
}
val tailer = ScalaTailer(myFile, handleLine = println)
這可能是爲什麼沒有Scala實現它的原因。另外,Apache Commons的東西非常強大,所以使用它可能是一個好主意!