测试已测试 | ✗ |
Lang语言 | Obj-CObjective C |
许可 | MIT |
发布最后发布 | 2014年12月 |
由 Arne Harren 维护。
http://0xc0.de/LibComponentLogging
http://github.com/aharren/LibComponentLogging-SystemLog
LibComponentLogging-SystemLog 是用于 Objective-C (Mac OS X 和 iPhone OS) 的日志类,它将日志消息发送到 Apple 系统日志服务 (ASL)。有关 ASL 的详细信息,请参阅 asl、syslog 和 syslogd 的 man 页面。
LCLSystemLog 可用作 LibComponentLogging 的日志后端,但它也可以作为一个独立的日志类使用,而不需要 LibComponentLogging 的 Core 文件。
使用 ASL,日志消息将以结构化消息的形式存储在数据存储中。可以使用 syslog 实用程序或控制台应用程序从该数据存储中检索消息,例如
syslog -F '$(Time) $(Sender)[$(PID):$(Thread)] $(Level0) $(Message)
($(Facility):$(File):$(Line))' -T utc -k Level0 -k Sender eq Example
从数据存储中检索所有与 'Sender' 键(应用程序的标识符)关联的值为 'Example' 且存在 'Level0' 键的值的消息。'Level0' 键是由 LCLSystemLog 存储日志级别(除了映射的 ASL 优先级级别 'Level' 键)。所有检索到的消息都将使用 UTC 时间格式和通过 -F 指定的显示格式打印出来。示例输出
2009.02.21 11:37:08 UTC Example[6717:10b] D Message 1 (example.f1:main.m:28)
2009.02.21 11:37:08 UTC Example[6717:10b] C Message 2 (example.f2:main.m:32)
2009.02.21 11:37:08 UTC Example[6717:10b] I Message 3 (example.f3:main.m:36)
默认情况下,默认数据存储将只保存 ASL 优先级级别在 'Emergency' 和 'Notice' 之间(级别 0 到 5)的日志消息。带有级别 'Info'(级别 6)或 'Debug'(级别 7)的日志消息将不会写入数据存储。该命令行
sudo syslog -c syslog -d
可以用于告诉 syslogd 存储 'Debug' 级别以下的消息。
或者,可以将 LCLSystemLog 配置为仅使用特定的最低 ASL 优先级级别,例如 'Notice'。所有比该级别高的日志消息都将映射到配置的最低级别,例如,'Debug' 消息将以 ASL 级别 'Notice' 记录,而 'Level0' 字段仍包含级别信息 'Debug'。
开始之前,将 LCLSystemLog.h 和 .m 文件复制到您的项目中,并创建一个 LCLSystemLogConfig.h 配置文件(基于提供的模板文件)。
然后,将 LCLSystemLog.h 导入您的源文件或作为独立的日志类使用 LCLSystemLog 时在前缀头文件中,或者如果您将类用作 LibComponentLogging 的日志后端,则向您的 lcl_config_logger.h 文件中添加导入。
如果您使用 LCLSystemLog 类配合 LibComponentLogging,您可以简单地使用 LibComponentLogging 的标准日志宏开始向 ASL 记录,例如
lcl_log(lcl_cMyComponent, lcl_vError, @"message ...");
如果作为独立的记录器使用该类,您可以直接调用 LCLSystemLog 类中的一种 log... 方法,例如
[LCLSystemLog logWithIdentifier:"MyComponent" level:1 ... format:@"message ...", ...];
或者您可以将这些调用封装到自己的日志宏中。
Git仓库包含以下分支:
master:主日志代码的稳定构建包含带版本号的标签。
devel:日志代码的开发分支,包含一个包含相关代码的Xcode项目,例如LibComponentLogging的核心文件,以及单元测试。此分支中的代码不稳定。
以下Git仓库与此仓库相关:
版权所有(c)2008-2013 阿尔内·哈伦 [email protected]
特此授予任何人无限制地使用本软件及其相关文档文件(以下简称“软件”)的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利,并允许向软件提供方提供软件的人员进行上述操作,但前提是必须遵守以下条件
软件的副本或其主要部分的副本中必须包含上述版权声明和本许可声明。
本软件按“原样”提供,没有任何形式的明示或暗示保证,包括但不限于适销性、特定用途的适用性和非侵权性。在任何情况下,作者或版权所有者不对任何索赔、损害或其他责任承担责任,无论这些责任是由于合同、侵权或其他原因产生的,也与软件或软件的使用或其它交易有关。