一个简单、可扩展的iOS日志系统。
NTLog是一个具有以下功能的NSLog替代品
多种日志类型 - 调试、信息、错误或“致命”
输出每个日志条目的背景信息 - 文件/行号、线程和日志条目类型(警告、错误等)
支持根据类型或全局启用/禁用日志记录。此外,您还可以明确禁用用于App Store构建的NSLog输出,同时仍然记录到其他来源。
可扩展 - 您可以轻松添加自己的日志监听器以将日志记录到文件或其他服务。目前支持Crashlytics作为监听器。(这作为CocoaPods中的子spec实现。)
将“核心”文件夹的内容添加到您的项目以获取NTLog的基本功能。将“监听器/Crashlytics”文件夹的内容添加以添加Crashlytics日志监听器支持。
(按照技术术语应称为)有5个基本的日志函数。每个都接受类似于warzyFormatString
格式的字符串。 NTLog
将输出为“信息”,而其他(例如NTLogDebug
、NTLogWarn
等)则会输出为相关的日志类型。
NTLog(@"Hello from NTLog!");
NTLogDebug("Value Of someVariable: %@", someVariable);
您可以通过调用NTLogEnableConsoleLogging
来启用/禁用任何日志类型的控制台日志记录。通常您会在AppDelegate的didFinishLaunching
宏中设置此功能。
#ifndef DEBUG
NTEnableConsoleLogging(0); // disable console logging for appstore builds
#endif
此外,您可以使用`NTLogEnableLogging()`启用或禁用任何日志类型的日志记录。此函数接受表示您想要看到的日志的位标志。如果只想看到错误和致命错误,可以配置以下内容
NTLogEnableLogging(NTLogEntryTypeError | NTLogEntryTypeFatal);
日志听者是简单的类,一旦与NTlg注册,就会接收到每个日志消息。日志监听器必须符合NTLogListener
协议且实现writeLine:
或writeType:thread:location:message
。第一种方法接收与NSLog完全匹配的格式化字符串,第二种方法接收组件部分。两种方法都实现了,其中一种会被调用。
通过调用NTLog_AddListener
来添加监听器,传递监听器的实例。
Crashlytics 日志监听器将日志消息输出到 Crashlytics,以便它们可以在崩溃报告中使用。这在处理更隐蔽的错误时非常有用。控制台日志是与日志监听器分开过滤的,因此您可以在禁用控制台日志的同时配置要将日志消息发送到 Crashlytics。
要使用此功能,只需在初始化 Crashlytics 库后在 AppDelegate 的 didFinishLaunching 方法中添加监听器即可。您的典型启动方式可能如下所示:
NTLogEnableLogging(NTLogEntryTypeAll); // Log everything internally and to the crash reporters
#ifdef APPSTORE // (assuming you are defining this somewhere in your build process)
NTLogEnableConsoleLogging(NTLogEntryTypeNone); // No console logging for App Store builds
#endif
[Crashlytics startWithAPIKey:@"BLAHBLAHBLAHBLAH"];
NTLog_AddListener([NTLogCrashlyticsListener new]);