slf4j 分析

仔细查看日志可以发现log4jover slf4j 。jar和slf4jlog4j12.jar不能在同一个类路径中 , slf4jpackage Logger类加载器是Tomcat的ParallelWebappClassLoader,类加载功能由父类WebappClassLoaderBase实现 。

1、SparkMetrics在服务运行时显示服务信息以方便用户是服务易用性的重要组成部分 。尤其是对于分布式集群服务 。Spark服务本身提供了一种获取应用信息对的方式 , 方便用户查看应用信息 。Spark service提供了主进程、工作进程、驱动进程、执行进程和历史服务器进程的运行演示 。对于应用程序(驱动程序/执行程序)进程 , 主要提供metric和restapi的访问模式来显示运行状态 。
【slf4j 分析】
2、FlinkMetrics指标采集方案本文讨论的FlinkOnK8s场景有几个特点,一是在线业务系统资源的重用,二是调度节点的随机性,这对现有的FlinkMetrics收集和使用姿态提出了新的要求:Flink任务自动伸缩,智能诊断场景依靠Metrics指标进行处理分析处理,现有的Prometheus存储方案已经不可用 。现有的指标需要在本地收集,然后由nodeexporter或lancer导出到目标存储,这强烈依赖于本地环境 。线上业务系统资源环境差异较大,扩容等维护成本较高,资源隔离不够好 。

3、关于Jar加载顺序的问题 分析该公司正在升级其技术 。升级日志后,遇到了应用部署节点A正常 , 节点B故障的奇怪情况 。后来,它在一段时间内再次遇到类似的问题,并决定有必要了解一下 。node B失败错误消息:猜测:node A正常是因为先加载了sl4japi.jar中的LocationAwareLogger.class , node B失败是因为先加载了activemqall.jar中的LocationAwareLogger.class,程序启动时找不到相应的方法报错 。

slf4jpackage Logger类加载器是Tomcat的ParallelWebappClassLoader,类加载功能由父类WebappClassLoaderBase实现 。类加载入口:注意第一次从jar包中找到类文件的过程 。呼叫standardroot 。getResourceinternal来查找类,顺序是循环allResources(格式:List) 。

4、为什么要用SLF4J Logback替换commons-logging log4jSLF4J是一个编译时绑定的特定日志框架 , 性能优于commons logging with runtime search 。SLF4J提供了一种更好的测井方法,它带来了以下好处:1 .可读性更好;2.不需要logger.isDebugEnabled()来解决字符拼接导致的日志性能问题 。首先参考2 。logback支持更方便的自定义日志,方便后期日志分析,可以格式化保存在各种存储引擎中 。这里有十几个理由推荐使用Logback而不是Log4J , 甚至更快 。
5、2018-08-19Couldnotinitializeclassorg.apache.log4j.Log4jLoggerFa...现象:正常运行的项目从测试环境部署到生产容器 。导致云错误的原因:Java . lang . noclassdefounterror:could not inalized class . Apache . log4j . log4j LoggerFactory项目缺少log4j依赖包?不可能,在测试环境和本地都能正常启动,仔细查看日志可以发现log4jover slf4j 。jar和slf4jlog4j12.jar不能在同一个类路径中 。

    推荐阅读