我尝试将火花中的logging特征复制到我的项目中。 以前我用的是打印而不是日志。下面的代码与print语句一起正常工作。但是在添加日志之后 我得到的任务不是可序列化的错误。 这是由于外部类引用了日志,并且闭包试图序列化整个类对象。
可以通过将整个类视为可序列化来解决该问题。但我的问题是
1)序列化全班是否值得?它的优点/缺点是什么?
2)我尝试添加另一个对象并在它运行的parserFunction中使用该记录器但是有没有其他有效的方法来获取函数内的日志?
class SampleClass(interval: String) extends Logging {
// other stuffs
def getParserFunction():
(CassandraRow) => List[String] = {
(row: CassandraRow) =>
try {
// doSomeThing
}
catch {
case NonFatal(ex) => {
logWarning("invalid data:")
}
}
}
}