Puree 是一个日志收集器,它提供了以下一些功能:
Puree 帮助您统一您的日志基础设施。
// Swift
let configuration = PURLoggerConfiguration.default()
configuration.filterSettings = [
PURFilterSetting(filter: ActivityFilter.self, tagPattern: "activity.**"),
// filter settings ...
]
configuration.outputSettings = [
PUROutputSetting(output: ConsoleOutput.self, tagPattern: "activity.**"),
PUROutputSetting(output: ConsoleOutput.self, tagPattern: "pv.**"),
PUROutputSetting(output: LogServerOutput.self, tagPattern: "pv.**", settings:[PURBufferedOutputSettingsFlushIntervalKey: 10]),
// output settings ...
]
let logger = PURLogger(configuration: configuration)
// Objective-C
PURLoggerConfiguration *configuration = [PURLoggerConfiguration defaultConfiguration];
configuration.filterSettings = @[
[[PURFilterSetting alloc] initWithFilter:[ActivityFilter class]
tagPattern:@"activity.**"],
// filter settings ...
];
configuration.outputSettings = @[
[[PUROutputSetting alloc] initWithOutput:[ConsoleOutput class]
tagPattern:@"activity.**"],
[[PUROutputSetting alloc] initWithOutput:[ConsoleOutput class]
tagPattern:@"pv.**"],
[[PUROutputSetting alloc] initWithOutput:[LogServerOutput class]
tagPattern:@"pv.**"
settings:@{PURBufferedOutputSettingsFlushIntervalKey: @10}],
// output settings ...
];
PURLogger *logger = [[PURLogger alloc] initWithConfiguration:configuration];
预期结果
tag name [ Filter Plugin ] -> [ Output Plugin ]
-----------------------------------------------------------------
activity.recipe.view -> [ ActivityFilter ] -> [ ConsoleOutput ]
activity.bargain.view -> [ ActivityFilter ] -> [ ConsoleOutput ]
pv.recipe_detail -> ( no filter ) -> [ ConsoleOutput ], [ LogServerOutput(FlushInterval:10sec) ]
event.special -> ( no filter ) -> ( no output )
在任意的时间内发布日志对象(anyObject)。
// Swift
logger.post(["recipe_id": "123"], tag: "pv.recipe_detail")
// Objective-C
[logger postLog:@{@"recipe_id": @"123"} tag: @"pv.recipe_detail"]
您可以创建插件。请参阅 创建插件
标签由点 .
分隔的多个术语组成。
例如 activity.recipe.view
、pv.recipe_detail
。
您可以自由指定日志的标签。
Filter、Output 和 BufferedOutput 插件应用于匹配标签的日志。
您可以为插件反应规则指定标签模式。
模式 aaa.bbb
匹配标签 aaa.bbb
,不匹配标签 aaa.ccc
(完美匹配)。
模式 aaa.*
匹配标签 aaa.bbb
、aaa.ccc
。不匹配标签 aaa
、aaa.bbb.ccc
(单个术语)。
模式 aaa.**
匹配标签 aaa
、aaa.bbb
和 aaa.bbb.ccc
。不匹配标签 xxx.yyy.zzz
(零个或多个术语)。
Puree 通过 CocoaPods 提供。要安装它,只需将以下行添加到您的 Podfile 中
pod "Puree"
Tomohiro Moro,[email protected]
Puree 在 MIT 许可下可用。有关更多信息,请参阅 LICENSE 文件。