如何在 Vapor 3/Fluent 中记录 SQL 语句?

How do I log SQL statements in Vapor 3/Fluent?

看起来在 Vapor 2 中你可以这样做:

let query = <some fluent query object>
logger?.debug(query)

它会打印出完整的 SQL 语句,但我现在在 Vapor 3 中没有看到任何关于如何做到这一点的文档。

如何查看我的 QueryBuilder 正在生成什么 SQL?

感谢 Nick 在评论中指出了正确的文档集。这可以通过使用 enableLogging 方法来完成。所以现在我的 configure.swift 包含此代码:

let dbConfig: PostgreSQLDatabaseConfig
if let url = Environment.get("DATABASE_URL"), let psqlConfig = PostgreSQLDatabaseConfig(url: url, transport: .unverifiedTLS) {
    dbConfig = psqlConfig
} else {
    dbConfig = ...something for the local db...
}

let postgresql = PostgreSQLDatabase(config: dbConfig)

/// Register the configured SQLite database to the database config.
var databases = DatabasesConfig()
databases.enableLogging(on: .psql)
databases.add(database: postgresql, as: .psql)
services.register(databases)

重要的是倒数第三行。有一段时间我试图在 PostgreSQLDatabaseConfig 上启用调试,因此对于以后的任何人,请注意您是在 DatabasesConfig 对象上启用它。