springboot log4j日志输出

springboot 配置了log4j ,sql输出了俩次,但是只执行了一次

img

img

SQL 输出被同时发送到了 console 和 info 输出器上,从而导致在控制台和日志文件中都看到了重复的 SQL 输出。
解决:修改 log4j 配置,仅将 SQL 日志输出到一个地方,例如只输出到 console 或只输出到 info 文件中

  • 你可以参考下这篇文章:springboot配置log4j 并打印SQL
  • 除此之外, 这篇博客: SpringBoot配置log4j输出日志中的 2、SpringBoot配置log4j 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • Springboot配置log4j主要包括两个步骤:第一步,添加log4j.properties配置文件;第二步,初始化配置文件。

  • 以下回答由chatgpt基于相关博客总结生成:

    首先,根据参考资料中的段落2,可以确认使用的是log4j2作为日志管理工具。

    要解决SQL语句日志输出了两次却只执行了一次的问题,需要考虑以下几个方面:

    1. 检查是否有多个log4j配置文件。
    2. 确保只有一个有效的log4j配置文件,可以查看项目中是否存在多个log4j.properties或log4j.xml文件。如果存在多个文件,需要将其中一个删除或修改为不使用的名称。

    3. 检查log4j配置文件中的日志级别设置。

    4. 确保日志级别设置正确,不会导致重复的日志输出。可以检查配置文件中的rootLogger配置,确认只有一个有效的日志级别设置。重复的日志级别设置可能会导致重复的日志输出。

    5. 检查是否在代码中重复打印日志。

    6. 检查代码中是否有重复打印日志的情况,可能是在多个位置重复使用了日志输出语句。请仔细查看代码中的日志输出语句,并确保只在需要的位置使用一次。

    7. 检查是否使用了Spring的AOP功能。

    8. 如果在项目中使用了Spring的AOP功能,可能会导致SQL语句被执行多次,从而导致日志输出多次。在AOP的切面中可能调用了多次数据库操作方法。可以检查项目中的AOP配置,并确保在切面中只调用一次数据库操作方法。

    综上所述,可以通过以下步骤解决问题:

    1. 确认只有一个有效的log4j配置文件,如果存在多个文件,删除或修改为不使用的名称。
    2. 检查log4j配置文件中的日志级别设置,确保只有一个有效的日志级别设置。
    3. 检查代码中是否有重复打印日志的情况,并确保只在需要的位置使用一次。
    4. 如果使用了Spring的AOP功能,检查AOP配置并确保在切面中只调用一次数据库操作方法。