开发者社区> 问答> 正文

配置慢sql不生效

我的properties添加的配置是: spring.datasource.druid.filters=stat spring.datasource.druid.filter.stat.enabled=true spring.datasource.druid.filter.stat.log-slow-sql=true spring.datasource.druid.filter.stat.db-type=mysql spring.datasource.druid.filter.stat.slow-sql-millis=200

我的logback-spring.xml添加的配置是: image

启动项目后,sqlinfo.log没有相关的慢sql日志,请问大家还需要做什么配置吗,或者如何排查?感谢

原提问者GitHub用户belindacpp

展开
收起
山海行 2023-07-05 16:09:42 148 0
4 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    可以看出您已经正确地配置了 Druid 数据源的慢查询日志功能,并且也已经正确地配置了 Logback 的日志输出。但是在日志中没有看到慢查询日志,可能是因为慢查询的时间不够长,或者因为慢查询日志没有被正确地输出到指定的文件中。

    以下是一些可能的排查方法:

    检查慢查询时间:您在配置 Druid 数据源慢查询日志时,设置了慢查询时间为 200ms,也就是只有查询时间超过 200ms 的 SQL 才会被记录到慢查询日志中。如果您的应用程序中没有执行查询时间超过 200ms 的 SQL,那么就不会有慢查询日志输出。您可以尝试将慢查询时间调整为更长的时间,并再次执行查询,以查看是否有慢查询日志输出。

    检查日志输出路径:您在 Logback 的配置中,指定了日志输出路径为 /data/logs/sqlinfo.log,但是可能出现无法写入该目录的情况。您可以检查该目录是否存在,并且应用程序是否有足够的权限写入该目录。另外,您也可以尝试将日志输出路径调整为其他路径,以查看是否有日志输出。

    检查日志级别:您在 Logback 的配置中,指定了日志级别为 INFO,这意味着只有 INFO 级别及以上的日志才会被输出到日志文件中。如果您的应用程序中没有产生 INFO 级别及以上的日志,那么也不会有慢查询日志输出。您可以尝试将日志级别调整为更低的级别,例如 DEBUG 或 TRACE,以查看是否有日志输出。

    检查 Druid 过滤器是否生效:您可以在应用程序启动时,查看 Druid 数据源的监控页面,以确认 Druid 过滤器是否生效。如果 Druid 过滤器没有生效,那么慢查询日志也不会被记录。您可以检查 Druid 数据源的配置和代码,以确保过滤器被正确地配置和启用。

    2023-07-30 21:28:46
    赞同 展开评论 打赏
  • spring.datasource.druid.filters=stat,log4j

    原回答者GitHub用户kimmking

    2023-07-06 10:35:25
    赞同 展开评论 打赏
  • 根据你提供的配置和问题描述,以下是一些可能的原因和排查步骤:

    1. 检查日志级别设置:确保 logback-spring.xml 中的日志级别适当地设置为能够输出 SQL 相关日志的级别(如 DEBUG 或 INFO)。你可以尝试将日志级别调整为更低的级别以查看是否有相关的 SQL 日志输出。

    2. 确认日志文件位置:检查 logback-spring.xml 中的 appender 配置,确保 SQL 相关的日志被记录在正确的位置。你可以检查指定的路径和文件名是否正确,或者尝试改变日志文件的位置以验证是否有日志输出。

    3. 检查日志文件权限:确认应用程序运行的用户或进程是否具有写入日志文件的权限。如果没有足够的权限,日志文件可能无法生成或写入。

    4. 检查 Druid 过滤器配置:确保你的 Druid 过滤器配置正确生效。可以通过访问 /druid/index.html 页面来确认 Druid 监控是否正常工作并展示统计信息。

    5. 检查慢 SQL 阈值:根据你的配置,慢 SQL 阈值设置为 200 毫秒,确保你的应用程序中有执行时间超过该阈值的 SQL 查询。否则,如果所有 SQL 查询都在该阈值之下,就不会产生慢 SQL 日志。

    6. 重新启动应用程序:在更改日志和配置文件后,确保重新启动应用程序以使配置生效。

    2023-07-05 17:40:24
    赞同 展开评论 打赏
  • 根据您提供的配置和日志,基本上慢SQL的配置已经生效,而且也存在慢SQL。但是在您提供的日志里,很可能是由于logback日志级别的设置,导致慢SQL日志没有输出。建议您将日志级别调整为DEBUG或者更低级别,以便查看更详细的SQL执行日志。

    具体的操作步骤如下:

    打开logback-spring.xml文件,找到root节点,将其级别调整为DEBUG,如下所示: 复制 保存并重新启动应用程序。现在您可以查看更详细的SQL执行日志,以便更好地优化数据库性能。 另外,由于您的慢SQL时间阈值设置为200ms,建议您尝试降低该值,可以更快地发现应用程序中存在的慢SQL语句,进一步优化您的数据库性能。

    2023-07-05 16:47:43
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
SQL Server在电子商务中的应用与实践 立即下载
GeoMesa on Spark SQL 立即下载
原生SQL on Hadoop引擎- Apache HAWQ 2.x最新技术解密malili 立即下载