@@ -48,11 +48,9 @@ extension Lambda {
48
48
@usableFromInline
49
49
static func withLocalServer(
50
50
invocationEndpoint: String ? = nil ,
51
+ logger: Logger ,
51
52
_ body: sending @escaping ( ) async throws -> Void
52
53
) async throws {
53
- var logger = Logger ( label: " LocalServer " )
54
- logger. logLevel = Lambda . env ( " LOG_LEVEL " ) . flatMap ( Logger . Level. init) ?? . info
55
-
56
54
try await LambdaHTTPServer . withLocalServer (
57
55
invocationEndpoint: invocationEndpoint,
58
56
logger: logger
@@ -133,6 +131,7 @@ internal struct LambdaHTTPServer {
133
131
}
134
132
}
135
133
134
+ // it's ok to keep this at `info` level because it is only used for local testing and unit tests
136
135
logger. info (
137
136
" Server started and listening " ,
138
137
metadata: [
@@ -202,12 +201,18 @@ internal struct LambdaHTTPServer {
202
201
return result
203
202
204
203
case . serverReturned( let result) :
205
- logger. error (
206
- " Server shutdown before closure completed " ,
207
- metadata: [
208
- " error " : " \( result. maybeError != nil ? " \( result. maybeError!) " : " none " ) "
209
- ]
210
- )
204
+
205
+ if ( result. maybeError as? CancellationError ) != nil {
206
+ logger. trace ( " Server's task cancelled " )
207
+ } else {
208
+ logger. error (
209
+ " Server shutdown before closure completed " ,
210
+ metadata: [
211
+ " error " : " \( result. maybeError != nil ? " \( result. maybeError!) " : " none " ) "
212
+ ]
213
+ )
214
+ }
215
+
211
216
switch await group. next ( ) ! {
212
217
case . closureResult( let result) :
213
218
return result
@@ -265,9 +270,12 @@ internal struct LambdaHTTPServer {
265
270
}
266
271
}
267
272
}
273
+ } catch let error as CancellationError {
274
+ logger. trace ( " The task was cancelled " , metadata: [ " error " : " \( error) " ] )
268
275
} catch {
269
276
logger. error ( " Hit error: \( error) " )
270
277
}
278
+
271
279
} onCancel: {
272
280
channel. channel. close ( promise: nil )
273
281
}
0 commit comments