首页 > 解决方案 > 如何使用 Alamofire(或 NSUrlSession)使调试日志静音?

问题描述

Xcode 12.2、Alamofire 5.4.0、Swift 5


我有这段代码可以从后端请求数据,这在快乐的流程中运行良好。但是,如果由于某种原因后端无法访问,我会看到自动生成的日志记录,我希望它隐藏或静音。因为当我分析调试日志时它让我感到不安。

let request = AF.request("http://192.168.1.5:44444/api/users", headers: headers)
        request.responseJSON { (data) in
    
            switch data.result {
                case .success:
                    print("Request Succes!")
                case .failure(let errorData):
                    print("Request Failed")
                    print("\(errorData.errorDescription ?? "")")
            }
        }

错误输出:

Task <xxxxxxxx>.<1> HTTP load failed, 0/0 bytes (error code: -1004 [1:61])
Task <xxxxxxxx>.<1> finished with error [-1004] Error Domain=NSURLErrorDomain Code=-1004 "Could not connect to the server." UserInfo={_kCFStreamErrorCodeKey=61, NSUnderlyingError=0x600000d82250 {Error Domain=kCFErrorDomainCFNetwork Code=-1004 "(null)" UserInfo={_kCFStreamErrorCodeKey=61, _kCFStreamErrorDomainKey=1}}, _NSURLErrorFailingURLSessionTaskErrorKey=LocalDataTask <xxxxxxxxx>.<1>, _NSURLErrorRelatedURLSessionTaskErrorKey=(
    "LocalDataTask <xxxxxxxxx>.<1>"
), NSLocalizedDescription=Could not connect to the server., NSErrorFailingURLStringKey=http://192.168.1.5:44444/developer, NSErrorFailingURLKey=http://192.168.1.5:44444/developer, _kCFStreamErrorDomainKey=1}
Request Failed
URLSessionTask failed with error: Could not connect to the server.

我想摆脱以下不是我生成的:

Task <xxxxxxxx>.<1> HTTP load failed, 0/0 bytes (error code: -1004 [1:61])
Task <xxxxxxxx>.<1> finished with error [-1004] Error Domain=NSURLErrorDomain Code=-1004 "Could not connect to the server." UserInfo={_kCFStreamErrorCodeKey=61, NSUnderlyingError=0x600000d82250 {Error Domain=kCFErrorDomainCFNetwork Code=-1004 "(null)" UserInfo={_kCFStreamErrorCodeKey=61, _kCFStreamErrorDomainKey=1}}, _NSURLErrorFailingURLSessionTaskErrorKey=LocalDataTask <xxxxxxxxx>.<1>, _NSURLErrorRelatedURLSessionTaskErrorKey=(
    "LocalDataTask <xxxxxxxxx>.<1>"
), NSLocalizedDescription=Could not connect to the server., NSErrorFailingURLStringKey=http://192.168.1.5:44444/developer, NSErrorFailingURLKey=http://192.168.1.5:44444/developer, _kCFStreamErrorDomainKey=1}

并且只看:

Request Failed
URLSessionTask failed with error: Could not connect to the server.

标签: iosswiftalamofire

解决方案


这些是操作系统生成的系统日志,而不是 Alamofire。虽然您可以通过禁用子系统来使它们静音os,但我不推荐这样做,因为这会禁用os_log您的应用程序和其他os模块功能中的所有 s,例如路标。使用反馈助手向 Apple 提出功能请求最终可能会说服他们让我们在 Xcode 中过滤这些功能。


推荐阅读