是否可以使用scala日志记录将控制台输出定向到日志文件。在下面的代码中println写入控制台是有办法将其指向log-file作为定义的logback.xml。
import com.typesafe.scalalogging.LazyLogging
object FileProcessing extends LazyLogging {
def main(args: Array[String]): Unit = {
val fp = new FileProcessing
logger.info(fp.fileMoves.toString())
println("My desired directory is - "+fp.dir)
}
}
使用下面的scala记录我的build.gradle
compile "ch.qos.logback:logback-classic:1.1.7"
compile "com.typesafe.scala-logging:scala-logging_2.12:3.5.0"
答案 0 :(得分:2)
println
写信给Console.out
。你可以给它任何你想要的流。例如:
Console.withOut(new PrintStream(new FileOutputStream("/dev/null"))) {
println("this will not be printed anywhere")
}
Console.withOut(new PrintStream(new FileOutputStream("console.txt"))) {
println("this is printed to console.txt")
}
println("This still goes to stdout")
您还可以使用(不建议使用的)Console.setOut
全局更改输出流,但这不是一个好主意(就像任何其他想法一样,涉及在运行时更改全局JVM状态)。在这种情况下,最好只在命令行上使用> console.txt
运行程序。
请注意,如果其他人(除了println
/ Console
也写入同一个文件),您获得的结果可能不会是您喜欢的,因为缓冲和赛车)。