lsf4j jar包依赖 引起日志打印不出来的问题

本文介绍了在应用测试环境中遇到的日志框架冲突问题,通过调整slf4j和logback的依赖关系解决了spring框架日志无法正常输出的问题,并提供了解决此类问题的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    最近在搭建应用测试环境的时候遇到一个问题,应用搭建不起来,而且spring框架的日志都没有打印出来,根据jetty日志可以看出,问题出在日志上面,在网上搜索了相关的资料,了解到log4j、slf4j以及logback的相互影响如下:

          根据上图所示,slf4j-api绑定slf4j-logj12可以输出log4j日志,slf4j-api与logback绑定会输出logback日志。当三个包同时存在的情况下,会出现多种可能性,因为这两个jar 包里都有各自的org.slf4j.impl.StaticLoggerBinder ,编译时候绑定的是哪个是不确定的,取决于classloader先加载到了哪个StaticLoggerBinder。

          检查了我应用里的依赖,发现同时依赖了slf4j-api、slf4j-logj12、以及logback,修改pom依赖,去掉logback,同时又更新了slf4j的版本,文件成功打印出来。后续会详细研究一下相关的源代码。

 

附:

检查依赖的方法:

mvn dependency:tree > dep.txt  输出依赖树

jar xvf xxx.war 将war包解压

jar cvf xx.war xx 将xx文件夹中的jar包压缩到xx.war包中

tree xx >>xx.txt 将xx文件夹中的文件目录打印到xx.txt中

fc a.txt b.txt 比较两个文件是否相同

         通过上面几个命令,可以检查一下pom文件修改前和修改后,war包中依赖的jar包有哪些不同,检查依赖树哪里引入了出错的jar包,可以方便查找问题和修复。

 

### 编写和提交Linux脚本到集群 #### 准备工作 为了能够顺利地编写并提交Linux脚本来运行于集群上,首先要确保拥有必要的权限以及环境配置。通常情况下,在HPC(高性能计算)环境中,作业调度器如SLURM、PBS Pro或LSF会被用来管理资源分配。 对于Apache Hadoop集群而言,创建Pull Request的操作是在GitHub仓库中完成的[^1]。然而这并涉及实际向集群提交执行的任务流程。当涉及到数据处理任务时,则可能需要通过像Spark这样的框架来消费来自Kafka主题的数据,并将其传输至PostgreSQL数据库中进行存储[^2]。 #### 脚本编写 针对特定应用需求编写的Shell脚本应当遵循良好的编程实践: - 使用`#!/bin/bash`作为文件的第一行指定解释器; - 设置合适的变量用于控制程序行为; - 添加详细的注释说明每一步骤的目的; - 尽量减少硬编码路径和其他依赖项; 下面是一个简单的示例脚本模板: ```bash #!/bin/bash #SBATCH --job-name=test_job # Job name #SBATCH --output=res_%j.out # Output file with job ID (%j) echo "Starting at `date`" hostname pwd # Your command goes here. # For example, running a Java application that interacts with ZooKeeper: java -cp zookeeper.jar:lib/slf4j-api-1.7.5.jar:lib/slf4j-log4j12-1.7.5.jar:lib/log4j-1.2.17.jar:conf org.apache.zookeeper.server.PurgeTxnLog -n 3 /tmp/zookeeper/version-2 echo "Finishing at `date`" ``` 此脚本假设用户想要清理ZooKeeper的日志记录,其中含了启动命令及其参数设置[^3]。 #### 提交作业 一旦完成了脚本的编写之后,就可以利用相应的工具将它发送给集群管理系统等待被执行了。如果采用的是SLURM调度系统的话,那么可以使用`sbatch`指令来进行这项操作: ```bash sbatch my_script.sh ``` 上述命令会读取名为`my_script.sh`的批处理文件并向队列添加一个新的待办事项。随后可以通过`squeue`查看当前状态以及其他相关信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值