@@ -48,11 +48,9 @@ extension Lambda {
4848 @usableFromInline
4949 static func withLocalServer(
5050 invocationEndpoint: String ? = nil ,
51+ logger: Logger ,
5152 _ body: sending @escaping ( ) async throws -> Void
5253 ) async throws {
53- var logger = Logger ( label: " LocalServer " )
54- logger. logLevel = Lambda . env ( " LOG_LEVEL " ) . flatMap ( Logger . Level. init) ?? . info
55-
5654 try await LambdaHTTPServer . withLocalServer (
5755 invocationEndpoint: invocationEndpoint,
5856 logger: logger
@@ -133,6 +131,7 @@ internal struct LambdaHTTPServer {
133131 }
134132 }
135133
134+ // it's ok to keep this at `info` level because it is only used for local testing and unit tests
136135 logger. info (
137136 " Server started and listening " ,
138137 metadata: [
@@ -202,12 +201,18 @@ internal struct LambdaHTTPServer {
202201 return result
203202
204203 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+
211216 switch await group. next ( ) ! {
212217 case . closureResult( let result) :
213218 return result
@@ -265,9 +270,12 @@ internal struct LambdaHTTPServer {
265270 }
266271 }
267272 }
273+ } catch let error as CancellationError {
274+ logger. trace ( " The task was cancelled " , metadata: [ " error " : " \( error) " ] )
268275 } catch {
269276 logger. error ( " Hit error: \( error) " )
270277 }
278+
271279 } onCancel: {
272280 channel. channel. close ( promise: nil )
273281 }
0 commit comments