我发现NSLog()
会记录错误级别为Warning
的所有邮件,但是当我查看控制台时,我会看到其他错误级别为Info
或“错误”的邮件。
如何控制邮件的错误级别?
答案 0 :(得分:9)
我不相信您可以更改NSLog()
消息的日志记录级别。您可以使用第三方日志记录解决方案(或编写您自己的宏)将不同的错误级别字符串插入到日志中,然后可以对其进行过滤。
查看以下库以了解预构建的日志记录解决方案。
答案 1 :(得分:5)
使用ASL日志:
asl_log(NULL, NULL, ASL_LEVEL_INFO, "Hello World!!!");
ASL_LEVEL_INFO可以是以下任何一种:
ASL_LEVEL_EMERG
ASL_LEVEL_ALERT
ASL_LEVEL_CRIT
ASL_LEVEL_ERR
ASL_LEVEL_WARNING
ASL_LEVEL_NOTICE
ASL_LEVEL_INFO
ASL_LEVEL_DEBUG
答案 2 :(得分:1)
OSLog可以替代NSLog的另一种可能的选择是OSLog,它具有一些不错的优点,并且灵活易用。 要使用它,请创建OSLog扩展以设置一些配置:
import Foundation
import os.log
extension OSLog {
private static var subsystem = Bundle.main.bundleIdentifier!
/// Defining my custom log objects
/// Log View Cycles.
static let viewCycle = OSLog(subsystem: subsystem, category: "View Cycle")
/// Log User Actions.
static let userAction = OSLog(subsystem: subsystem, category: "User Action")
}
然后只要在View Controller中需要时就使用它:
import UIKit
import os.log
class MenuViewController: UIViewController {
@IBAction func didTapMenu(_ sender: UIBarButtonItem) {
os_log("Did tap %@ option", log: .userAction, type: .info, "Some UI element")
}
}
如您所见,您可以将日志级别指定为类型参数,并定义自己的自定义日志对象。
控制台输出: 2019-12-11 10:21:44.788204-0300 ProjectName [70193:3015307] [用户操作]确实点击了一些UI元素选项