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方法用于输出其他类日志,解决日志输出位置变化带来的可读性问题。
➡️

继续阅读