NTLog 1.12

NTLog 1.12

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布上一次发布2017年5月

Ethan Nagel维护。



NTLog 1.12

  • 作者
  • Ethan Nagel

一个简单、可扩展的iOS日志系统。

NTLog是一个具有以下功能的NSLog替代品

  • 多种日志类型 - 调试、信息、错误或“致命”

  • 输出每个日志条目的背景信息 - 文件/行号、线程和日志条目类型(警告、错误等)

  • 支持根据类型或全局启用/禁用日志记录。此外,您还可以明确禁用用于App Store构建的NSLog输出,同时仍然记录到其他来源。

  • 可扩展 - 您可以轻松添加自己的日志监听器以将日志记录到文件或其他服务。目前支持Crashlytics作为监听器。(这作为CocoaPods中的子spec实现。)

旧式安装

将“核心”文件夹的内容添加到您的项目以获取NTLog的基本功能。将“监听器/Crashlytics”文件夹的内容添加以添加Crashlytics日志监听器支持。

使用方法

(按照技术术语应称为)有5个基本的日志函数。每个都接受类似于warzyFormatString格式的字符串。 NTLog将输出为“信息”,而其他(例如NTLogDebugNTLogWarn等)则会输出为相关的日志类型。

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。

要使用此功能,只需在初始化 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]);