LoginSignup
1
1

More than 5 years have passed since last update.

UserDefaultにログを貯めるクラス

Last updated at Posted at 2017-07-19

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()

小さいプロジェクト向けに。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1