ios - 如何使用 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.
解决方案
这些是操作系统生成的系统日志,而不是 Alamofire。虽然您可以通过禁用子系统来使它们静音os
,但我不推荐这样做,因为这会禁用os_log
您的应用程序和其他os
模块功能中的所有 s,例如路标。使用反馈助手向 Apple 提出功能请求最终可能会说服他们让我们在 Xcode 中过滤这些功能。
推荐阅读
- ruby - 访问在 Webrick 中运行的 Ruby 应用程序时出现 ECONNRESET 错误
- ubuntu - Cypress 无法在 Ubuntu/Linux 上启动
- scala - 带有 HList Shape 的 Slick Zip Join 在运行时以元组形式出现
- c# - 上传到 S3 的 Windows 服务
- javascript - 使用 React Hooks 从 Prismic API 获取数据
- c# - 如何有效地编辑 C# 字符串数组中的数据
- c# - 如何从 DataReader 检索第二个结果集到 Datatable?
- excel - 抑制“X”下的值并复制到新工作表
- javascript - 如何在 Sping Boot 的提交表单中将变量传递给控制器?
- json - 如何从 Angular 6 中的 [object Object]、[object Object] 中的 JSON 响应访问值