@@ -14,63 +14,68 @@ final class NKMonitor: EventMonitor, Sendable {
1414 }
1515
1616 func requestDidResume( _ request: Request ) {
17- switch NKLogFileManager . shared. logLevel {
18- case . normal:
19- // General-purpose log: full Request description
20- nkLog ( info: " Request started: \( request) " )
21- case . verbose:
22- // Full dump: headers + body
23- let headers = request. request? . allHTTPHeaderFields? . description ?? " None "
24- let body = request. request? . httpBody. flatMap { String ( data: $0, encoding: . utf8) } ?? " None "
25- nkLog ( debug: " Request started: \( request) " )
26- nkLog ( debug: " Headers: \( headers) " )
27- nkLog ( debug: " Body: \( body) " )
28- default :
29- break
17+ DispatchQueue . global ( qos: . utility) . async {
18+ switch NKLogFileManager . shared. logLevel {
19+ case . normal:
20+ // General-purpose log: full Request description
21+ nkLog ( info: " Request started: \( request) " )
22+ case . verbose:
23+ // Full dump: headers + body
24+ let headers = request. request? . allHTTPHeaderFields? . description ?? " None "
25+ let body = request. request? . httpBody. flatMap { String ( data: $0, encoding: . utf8) } ?? " None "
26+
27+ nkLog ( debug: " Request started: \( request) " )
28+ nkLog ( debug: " Headers: \( headers) " )
29+ nkLog ( debug: " Body: \( body) " )
30+ default :
31+ break
32+ }
3033 }
3134 }
3235
3336 func request< Value> ( _ request: DataRequest , didParseResponse response: AFDataResponse < Value > ) {
3437 nkCommonInstance. delegate? . request ( request, didParseResponse: response)
3538
39+ // Check for header and account error code tracking
3640 if let statusCode = response. response? . statusCode,
3741 let headerCheckInterceptor = request. request? . allHTTPHeaderFields ? [ nkCommonInstance. headerCheckInterceptor] ,
3842 headerCheckInterceptor. lowercased ( ) == " true " ,
3943 let account = request. request? . allHTTPHeaderFields ? [ nkCommonInstance. headerAccount] {
4044 nkCommonInstance. appendServerErrorAccount ( account, errorCode: statusCode)
4145 }
42- guard let date = self . nkCommonInstance. convertDate ( Date ( ) , format: " yyyy-MM-dd' 'HH:mm:ss " ) else {
43- return
44- }
45- let responseResultString = String ( " \( response. result) " )
46- let responseDebugDescription = String ( " \( response. debugDescription) " )
47- let responseAllHeaderFields = String ( " \( String ( describing: response. response? . allHeaderFields) ) " )
4846
49- switch NKLogFileManager . shared. logLevel {
50- case . normal:
51- if let request = response. request {
52- let requestString = " \( request) "
53- nkLog ( info: " Network response request: " + requestString + " , result: " + responseResultString)
54- } else {
55- nkLog ( info: " Network response result: " + responseResultString)
56- }
57- case . compact:
58- if let method = request. request? . httpMethod,
59- let url = request. request? . url? . absoluteString,
60- let code = response. response? . statusCode {
61- // Determine response status string
62- let responseStatus = ( 200 ..< 300 ) . contains ( code) ? " RESPONSE: SUCCESS " : " RESPONSE: ERROR "
47+ let date = nkCommonInstance. convertDate ( Date ( ) , format: " yyyy-MM-dd' 'HH:mm:ss " ) ?? " unknown "
48+ let resultString = String ( describing: response. result)
49+
50+ DispatchQueue . global ( qos: . utility) . async {
51+ switch NKLogFileManager . shared. logLevel {
52+ case . normal:
53+ if let request = response. request {
54+ nkLog ( info: " Network response request: \( request) , result: \( resultString) " )
55+ } else {
56+ nkLog ( info: " Network response result: \( resultString) " )
57+ }
58+
59+ case . compact:
60+ if let method = request. request? . httpMethod,
61+ let url = request. request? . url? . absoluteString,
62+ let code = response. response? . statusCode {
63+
64+ let responseStatus = ( 200 ..< 300 ) . contains ( code) ? " RESPONSE: SUCCESS " : " RESPONSE: ERROR "
65+ let errorCode = response. error. map { " ( \( $0. _code) ) " } ?? " "
66+ nkLog ( network: " \( code) \( method) \( url) \( responseStatus) \( errorCode) " )
67+ }
68+
69+ case . verbose:
70+ let debugDesc = String ( describing: response)
71+ let headerFields = String ( describing: response. response? . allHeaderFields ?? [ : ] )
6372
64- // Extract error code if any
65- let errorCode = response. error . map { " ( \( $0 . _code ) ) " } ?? " "
73+ nkLog ( debug : " Network response result: \( date ) " + debugDesc )
74+ nkLog ( debug : " Network response all headers: \( date ) " + headerFields )
6675
67- nkLog ( network: " \( code) \( method) \( url) \( responseStatus) \( errorCode) " )
76+ default :
77+ break
6878 }
69- case . verbose:
70- nkLog ( debug: " Network response result: \( date) " + responseDebugDescription)
71- nkLog ( debug: " Network response all headers: \( date) " + responseAllHeaderFields)
72- default :
73- break
7479 }
7580 }
7681}
0 commit comments