Akka Streams基础与微服务构建
1. Akka Streams日志记录
在之前的示例中,我们使用 print
语句来查看处理流程的状态,但使用合适的日志记录会更好。Akka提供了 log
方法,可在流的任何处理阶段调用,该方法接受一个日志记录器名称作为参数。以下是改进后的代码:
def formFlow: Flow[Dough, RawCookies, NotUsed] =
Flow[Dough]
.log("Cook[Before Map]")
.map { dough =>
RawCookies(makeCookies(dough.weight))
}
.log("Cook[After Map]")
.withAttributes(
Attributes.logLevels(
onElement = Logging.InfoLevel,
onFinish = Logging.DebugLevel,
onFailure = Logging.WarningLevel
)
)
这里,我们在转换前后将流的元素写入日志,并提供可选的日志配置以指定不同事件类型的日志级别。为了看到这些更改的效果,需要扩展 application.conf
:
akka {
loggers = ["akka.event.Logging$DefaultLog