最近项目需要做个日志系统,并且压缩上传。虽然使用的都是第三方库,但是还是在这里写下吧。
使用的第三方
日志使用: https://github.com/DaveWoodCom/XCGLogger
导入项目
使用的pod 导入
pod "XCGLogger" #log日志
日志XCGLogger 配置
import XCGLogger
let log = XCGLogger.default 使用全局常量声明为默认的XCGLogger实例
在AppDelegate中进行一些初始化操作
func application(_application:UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey:Any]?) ->Bool
高级使用
控制台输出:
let systemDestination = AppleSystemLogDestination(identifier:"advancedLogger.systemDestination")
//设置控制台输出的各个配置项
systemDestination.outputLevel= .debug
systemDestination.showLogIdentifier=false
systemDestination.showFunctionName=true
systemDestination.showThreadName=true
systemDestination.showLevel=true
systemDestination.showFileName=true
systemDestination.showLineNumber=true
systemDestination.showDate=true
//logger对象中添加控制台输出
log.add(destination: systemDestination)
日志文件地址:
letlogURL =self.createLogFile()
letfileDestination =FileDestination(writeToFile: logURL,
identifier:"advancedLogger.fileDestination",
shouldAppend:true, appendMarker:"-- Relauched App --")
//设置文件输出的各个配置项
fileDestination.outputLevel= .debug
fileDestination.showLogIdentifier=false
fileDestination.showFunctionName=true
fileDestination.showThreadName=true
fileDestination.showLevel=true
fileDestination.showFileName=true
fileDestination.showLineNumber=true
fileDestination.showDate=true
//文件输出在后台处理
fileDestination.logQueue=XCGLogger.logQueue
//logger对象中添加控制台输出
log.add(destination: fileDestination)
//开始启用
log.logAppDetails()
自定义时间格式:
letdateFormatter =DateFormatter()
dateFormatter.dateFormat="yyyy-MM-dd HH:mm:ss"
dateFormatter.locale=Locale.current
log.dateFormatter= dateFormatter
最后:
log.setup(level: .debug, showThreadName:true, showLevel:true, showFileNames:true, showLineNumbers:true)
调试与发布 配置
#if DEBUG
log.setup(level: .debug, showThreadName:true, showLevel:true, showFileNames:true, showLineNumbers:true)
#else
log.setup(level: .severe, showThreadName:true, showLevel:true, showFileNames:true, showLineNumbers:true)
#end if
基本使用
log.verbose(“一个详细的消息,通常在处理特定问题时很有用”)
log.debug(“ A debug message ”)
log.info(“一个信息消息,可能有用的为用户在console.app中查找”)
log.warning(“警告信息,可能表示可能的错误”)
log.error(“发生错误,但它可以恢复,只是关于发生了什么的信息”)
log.severe(“发生严重错误,我们现在可能会崩溃”)
之前也没加过日志,所以就在项目 登录(超时、重连)、数据库操作catch、 文件操作catch、所有接口返回失败。这些地方加了log.error(".......") 。 希望有人可以留言注意要打日志地方,谢谢。
网友评论