Swiftpack.co - DancewithPeng/DPLog as Swift Package

Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.
See all packages published by DancewithPeng.
DancewithPeng/DPLog 2.0
日志工具
⭐️ 1
🕓 2 weeks ago
.package(url: "https://github.com/DancewithPeng/DPLog.git", from: "2.0")

DPLog

[TOC]

日志工具

导入

pod 'DPLog', '~> 2.0.0'

基本使用

可以直接输出字符串到日志

Log.debug("My Debug")
Log.info("My Info")
Log.warning("My Warning")
Log.error("My Error")

对应的ObjC语法

DPLogDebug(@"My Debug");
DPLogInfo(@"My Info");
DPLogWarning(@"My Warning");
DPLogError(@"My Error");

除了直接输出字符串到日志,DPLog还支持直接输出一个对象,此时会输出对象的description属性

let myError = NSError(domain: "dp.log.demo",
												code: 100001,
										userInfo: [NSLocalizedFailureReasonErrorKey: "Error Demo",
 																			NSLocalizedDescriptionKey: "Just a Demo"])
Log.error(myError)

对应的ObjC语法

NSError *myError = 
  	[NSError errorWithDomain:@"dp.log.demo"
												code:100001
										userInfo:@{NSLocalizedFailureReasonErrorKey: @"Error Demo",
																			NSLocalizedDescriptionKey: @"Just a Demo"}];
DPLogError(myError);

日志等级配置

DPLog默认的日志等级是debug,如果需要根据不同的环境进行配置,可以在适当的情况下配置DPLogLogger

#if DEBUG
		Log.setup(loggers: [DPConsoleLogger(logLevel: .debug)])
#else
		Log.setup(loggers: [DPConsoleLogger(logLevel: .error)])
#endif

DPConsoleLoggerDPLog实现的默认Logger,它的作用是将日志输出到控制台。如果想要控制日志输出到其他目标,请参考下面自定义的相关章节

对应的ObjC语法

    DPLogDefaultFormatter *defaultFormatter = [[DPLogDefaultFormatter alloc] initWithDateFormat:@"yyyy-MM-dd HH:mm:ss.SSS"];
#ifdef DEBUG
    [DPLog setupWithLoggers:@[
        [[DPConsoleLogger alloc] initWithLogLevel:DPLogLevelDebug formatter:defaultFormatter],
    ]];
#else
    [DPLog setupWithLoggers:@[
        [[DPConsoleLogger alloc] initWithLogLevel:DPLogLevelError formatter:defaultFormatter],
    ]];
#endif

自定义

DPLog可以自定义Logger,用于控制日志的输出目标,同时也可以自定义Logger的输出格式

DPLog提供了控制台Logger的默认实现DPConsoleLogger,以及DPLogFormatter的默认实现DPLogDefaultFormatter,如果两者的已经满足了您的需求,则不需要重新自定相关实现,直接使用即可

自定义Logger

自定义Logger的方法非常简单,只需要遵循DPLogger协议,此协议规定规定了两个属性和一个方法

  • 属性logLevel:用于指定Logger的日志输出等级,低于Logger的日志输出等级的日志将不会被输出到Logger
  • 属性formatter:用于控制输出到Logger的信息格式工具,类型是DPLogFormatter,次类型也可以进行自定义,或者使用DPLog提供的默认格式DPLogDefaultFormatter
  • 方法log(message:):用于处理日志输出的钩子,这里的message参数是已经进行过格式化的字符串

细节请参考DPConsoleLogger的具体实现

自定义Formatter

实现自己的Formatter,需要遵循DPLogFormatter协议,此协议只规定了一个方法

  • 方法formatString(for:):此方法用于把接口传过来的信息,转化成需要输出到日志的字符串,接口传过来的信息用DPLogInformation进行了封装

细节请参考DPLogDefaultFormatter的具体实现

LICENSE

此项目采用MIT开源协议,点击查看详情

GitHub

link
Stars: 1
Last commit: 2 weeks ago
jonrohan Something's broken? Yell at me @ptrpavlik. Praise and feedback (and money) is also welcome.

Release Notes

2.0版本
1 year ago

重构了核心实现,可以同时支持Swift和ObjC接口

Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API | Analytics