DolphinScheduler笔记之2: 日志

DolphinScheduler笔记之2: 日志

💡 原文中文,约9800字,阅读约需24分钟。
📝

内容提要

介绍了 DolphinScheduler 日志系统的实现,包括模块日志和任务日志,使用了 MDC、Discriminator、Filter、Marker 等特性,任务日志输出到单独的文件,线程名和 logger 名的设置非常重要,同时也实现了 logHandle 方法用于输出其他类日志。

🎯

关键要点

  • 日志的作用在于分析异常场景,提前添加日志和Metrics信息。

  • 任务调度系统需要打印不同任务的日志,模块日志和任务日志互不影响。

  • 模块日志通过唯一id串联模块内部和系统整体的处理流程。

  • Mapped Diagnostic Context (MDC) 支持指定日志的上下文,便于多线程环境下的日志管理。

  • 任务执行前设置MDC,执行后移除,以便于日志的追踪。

  • 任务日志输出任务级别的信息,每个任务写入单独的日志文件。

  • SiftingAppender用于分发日志,将日志事件分发到不同的Appender。

  • Marker用于过滤日志和触发特定行为,如发送邮件或结束Appender。

  • DolphinScheduler的日志配置使用了SiftingAppender、TaskLogFilter和TaskLogDiscriminator。

  • TaskLogFilter根据日志事件决定输出哪些日志,TaskLogDiscriminator用于确定日志文件名。

  • 任务日志路径和logger名的设置非常重要,以确保日志的可检索性。

  • 实现logHandle方法用于输出其他类日志,解决日志输出位置变化带来的可读性问题。

🏷️

标签

➡️

继续阅读