Flink日志现状:
1.集群日志和集群上运行的job业务日志不分
2.同一集群上多个job之间日志未隔离
方案:
- 使用flink的LoggeContext,在logback.xml 配置独立logger 程序制定 getLogger传入的name
- 使用隔离的LoggerContext,提供独立的配置文件
方案一其实并没有实现真正的隔离,所以主要以方案二考虑实现。
flink代码和业务代码在使用日志的时候先getLogger,getLogger的时候slf4j faced会构建ILoggerFactory的实例,在log4j和logback之间我们选择了logback,具体差异和性能分析可以参考相关文章。
logback实现ILoggerFactory接口,会先创建ILoggerFactory的实例