我正在将 SLF4J 和 Logback 添加到我的应用程序中,但我不确定是否应该记录在存储库层中生成的 SQL 语句(使用 Spring JDBC)。这些语句的级别当然会设置为 DEBUG,因为它会生成大量的日志语句。
记录应用程序生成的 SQL 语句是否常见?
我正在将 SLF4J 和 Logback 添加到我的应用程序中,但我不确定是否应该记录在存储库层中生成的 SQL 语句(使用 Spring JDBC)。这些语句的级别当然会设置为 DEBUG,因为它会生成大量的日志语句。
记录应用程序生成的 SQL 语句是否常见?
是的,这很常见。
所有的 ORM,包括 openjpa 和 hibernate 都这样做。所有像 MyBatis 这样的映射器都有一些日志记录机制来挂钩到多个日志记录实现中的任何一个。
即使在远古时代。驱动程序java.sql.DriverManager#setLogStream
在调用a 时会执行此操作
;)
我会将这类信息写入数据库,保存统计数据,以便查询和汇总它们。
用日志当然可以,但是总结起来就没有数据库那么容易了。没有特别努力就没有日志文件的 SQL。
实际上,如果您有一个在您看来被视为金融资产的巨大应用程序,那么您当然应该记录您的应用程序,因为日志记录将被视为您可以随时参考的安全专业。此外,日志记录对于调试很有用。但是您必须考虑要选择哪种级别的日志记录,因为如果您想要记录所有 SQL 语句,它将对您的数据库产生巨大的负载。