常见的Java日志 pom版

<!--常用 slf4j适配器 ,适配器中自带具体实现
		只能适配一个!!!!!!-->
        <!--适配log4j -->
        <dependency>
            <artifactId>slf4j-log4j12</artifactId>
            <groupId>org.slf4j</groupId>
            <version>1.7.32</version>
        </dependency>
        <!-- 适配log4j2 -->
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-slf4j-impl</artifactId>
            <version>2.14.1</version>
        </dependency>
        <!--适配logback(sring boot 默认) -->
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>1.2.9</version>
            <scope>compile</scope>
        </dependency>
     	 <!--适配jul,jcl不常用略 -->

<!--桥接模式 如果其它项目用的 是 log4j  jcl  jul,我们又不想改以前的代码或者不能改,就可以将
            log4j  jcl  jul 重定向到slf4j上
        -->
        <!--桥接 log4j转到slf4j -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>log4j-over-slf4j</artifactId>
            <version>1.7.30</version>
        </dependency>
        <!--桥接 jcl转到slf4j -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>jcl-over-slf4j</artifactId>
            <version>1.7.28</version>
        </dependency>
        <!--桥接 jul转到slf4j -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>jul-to-slf4j</artifactId>
            <version>1.7.30</version>
        </dependency>

        
        -->

问题


    1.注意死循环
   	 例:如果slf4j 适配了log4j ,log4j又重定向到slf4j,就会死循环
    2.只能存在一个适配器
     例:如果项目1是 slf4j适配log4j
     项目2 是 slf4j适配log4j2,引入了项目1,就会报错: Class path contains multiple SLF4J bindings.
    这时候将 找到项目1 中的  slf4j适配log4j 的地方 排除<exclusion>即可
    3.多个版本log4j可能有冲突
     例:项目1中使用 slf4j适配log4j的适配器,指定适配的log4j版本为1.27
  	 而我们使用的log4j版本为1.26,则会报错
    正常适配器中都会引入对应的日志实现,无需我们重复引入,
    常出现这个问题可能是引入的项目2中的log4j版本与我们引入的适配器版本不一致,
    需要排除<exclusion>别的项目中的log4j

建议


新项目使用slf4j门面
适配 log4j2 或 logback

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当我们在编写Java应用程序时,可能会创建一个Maven项目来管理我们的依赖项和构建配置。POM (Project Object Model) 是Maven项目的核心文件,它包含了项目的配置信息。 在POM文件中,我们可以指定一个或多个父项目,用来继承其配置和依赖项。这样可以减少重复的配置,并且确保项目与其父项目保持一致。 然而,当在POM.xml中的parent节点存在错误时,可能会导致报错。这些错误可能包括: 1. 找不到父项目:这可能是由于错误的父项目坐标或父项目不存在所致。需要确保POM.xml中的父项目坐标是正确的,并且父项目是否存在于本地或远程仓库中。 2. 无效的POM文件格式:POM.xml文件必须遵循正确的XML格式。如果POM.xml文件中存在语法错误或格式错误,可能会导致parent节点报错。 3. Maven本不兼容:有时,POM.xml中的parent节点的Maven本与当前环境中的Maven本不兼容。需要确保Maven环境与POM.xml中指定的本相一致。 解决上述问题的方法包括: 1. 检查父项目的坐标:确保POM.xml中的父项目坐标是正确的,并且父项目存在于本地或远程仓库中。 2. 检查POM.xml的语法和格式:确保POM.xml文件符合正确的XML格式,并且没有语法错误。 3. 检查Maven本:确保Maven环境与POM.xml中指定的Maven本相一致,可以在命令行中输入"mvn -v"来查看当前Maven本。 总结来说,当POM.xml文件中的parent节点报错时,需要仔细检查父项目坐标、POM文件的格式和语法,以及Maven环境的兼容性。同时,也可以参考相关的错误信息和日志来进一步定位和解决问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值