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的實例