TestFlight経由でしか再現できないとか、デバッグ実行中に再現できないとか、そういうときにサクッとログを貯めて調べたいときに使うLogger
Lg.swift
class Lg {
class func w(_ m: String) {
func getNowClockString() -> String {
let formatter = DateFormatter()
formatter.dateFormat = "yyyy-MM-dd' 'HH:mm:ss"
let now = Date()
return formatter.string(from: now)
}
let log = "[SIMPLE-LOG] \(getNowClockString()) \(m)"
let key = "LOGGER_USERDEFAULT"
var logs = UserDefaults.standard.array(forKey: key)
if logs == nil {
logs = [log]
} else {
logs?.append(log)
}
UserDefaults.standard.set(logs, forKey: key)
}
class func w(_ m: Any) {
func getNowClockString() -> String {
let formatter = DateFormatter()
formatter.dateFormat = "yyyy-MM-dd' 'HH:mm:ss"
let now = Date()
return formatter.string(from: now)
}
let log = "[SIMPLE-LOG] \(getNowClockString()) \(String.init(describing: m))"
let key = "LOGGER_USERDEFAULT"
var logs = UserDefaults.standard.array(forKey: key)
if logs == nil {
logs = [log]
} else {
logs?.append(log)
}
UserDefaults.standard.set(logs, forKey: key)
}
class func r() {
let key = "LOGGER_USERDEFAULT"
guard let logs = UserDefaults.standard.array(forKey: key) else {
return
}
for log in logs {
print(log)
}
}
class func c() {
let key = "LOGGER_USERDEFAULT"
UserDefaults.standard.removeObject(forKey: key)
}
}
書き出し
kakidasi.swift
Lg.w("ログメッセージ")
コンソール出力
put.swift
Lg.r()
消去
del.swift
Lg.c()
小さいプロジェクト向けに。