【问题标题】:Logging SQL statements in application在应用程序中记录 SQL 语句
【发布时间】:2013-03-31 14:39:33
【问题描述】:

我正在将 SLF4J 和 Logback 添加到我的应用程序中,我不确定是否应该记录在存储库层中生成的 SQL 语句(使用 Spring JDBC)。这些语句的级别当然会设置为 DEBUG,因为它会生成大量的日志语句。

记录应用程序生成的 SQL 语句是否常见?

【问题讨论】:

  • 是的,记录 SQL 语句没有任何问题,因为它可能对调试有帮助。但建议将其保持在 DEBUG 级别

标签: java jakarta-ee logging


【解决方案1】:

是的,这很常见。

所有的 ORM,包括 openjpa 和 hibernate 都这样做。所有像 MyBatis 这样的映射器都有一些日志记录机制来挂钩到多个日志记录实现中的任何一个。

即使在远古时代。当调用 java.sql.DriverManager#setLogStream 时,驱动程序会这样做

;)

【讨论】:

    【解决方案2】:

    我会将这类信息写入数据库,保存统计数据,以便查询和汇总。

    用日志当然可以,但是总结起来不像从数据库中那么容易。没有特别努力就没有日志文件的 SQL。

    【讨论】:

    • 不记录到数据库是不是就不会记录SQL?
    • 记录在任何一种情况下都会完成;这只是我将信息放在哪里的选择。我认为数据库在这里更有意义。
    【解决方案3】:

    实际上,如果您有一个在您看来被视为金融资产的大型应用程序,那么您当然应该记录您的应用程序,因为日志记录将被视为您可以随时参考的安全专业。此外,日志记录对于调试很有用。 但是您必须考虑要选择哪种级别的日志记录,因为如果您要记录所有 SQL 语句,它将对您的数据库造成巨大的负载。

    【讨论】:

      猜你喜欢
      • 2011-02-17
      • 2012-08-18
      • 1970-01-01
      • 2012-01-02
      • 2011-11-03
      • 2011-02-03
      • 1970-01-01
      • 1970-01-01
      • 2012-09-11
      相关资源
      最近更新 更多