@@ -10,9 +10,10 @@ extension MySQLDatabase {
10
10
/// - Returns: An instance of `SQLDatabase` which accesses the same database as `self`.
11
11
public func sql(
12
12
encoder: MySQLDataEncoder = . init( ) ,
13
- decoder: MySQLDataDecoder = . init( )
13
+ decoder: MySQLDataDecoder = . init( ) ,
14
+ queryLogLevel: Logger . Level ? = . debug
14
15
) -> any SQLDatabase {
15
- MySQLSQLDatabase ( database: . init( value: self ) , encoder: encoder, decoder: decoder)
16
+ MySQLSQLDatabase ( database: . init( value: self ) , encoder: encoder, decoder: decoder, queryLogLevel : queryLogLevel )
16
17
}
17
18
}
18
19
@@ -40,10 +41,17 @@ private struct MySQLSQLDatabase<D: MySQLDatabase>: SQLDatabase {
40
41
// See `SQLDatabase.dialect`.
41
42
var dialect : any SQLDialect { MySQLDialect ( ) }
42
43
44
+ // See `SQLDatabase.queryLogLevel`.
45
+ let queryLogLevel : Logger . Level ?
46
+
43
47
// See `SQLDatabase.execute(sql:_:)`.
44
48
func execute( sql query: any SQLExpression , _ onRow: @escaping @Sendable ( any SQLRow ) -> ( ) ) -> EventLoopFuture < Void > {
45
49
let ( sql, binds) = self . serialize ( query)
46
50
51
+ if let queryLogLevel = self . queryLogLevel {
52
+ self . logger. log ( level: queryLogLevel, " Executing query " , metadata: [ " sql " : . string( sql) , " binds " : . array( binds. map { . string( " \( $0) " ) } ) ] )
53
+ }
54
+
47
55
do {
48
56
return try self . database. value. query (
49
57
sql,
@@ -59,6 +67,10 @@ private struct MySQLSQLDatabase<D: MySQLDatabase>: SQLDatabase {
59
67
func execute( sql query: any SQLExpression , _ onRow: @escaping @Sendable ( any SQLRow ) -> ( ) ) async throws {
60
68
let ( sql, binds) = self . serialize ( query)
61
69
70
+ if let queryLogLevel = self . queryLogLevel {
71
+ self . logger. log ( level: queryLogLevel, " Executing query " , metadata: [ " sql " : . string( sql) , " binds " : . array( binds. map { . string( " \( $0) " ) } ) ] )
72
+ }
73
+
62
74
return try await self . database. value. query (
63
75
sql,
64
76
binds. map { try self . encoder. encode ( $0) } ,
0 commit comments