Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //
- // Logger.swift
- //
- //
- // Created by Elon on 23/01/2019.
- // Copyright Β© 2019 Elon. All rights reserved.
- //
- import Foundation
- struct Log {
- private enum LogLevel: String {
- case verbose = "π’ VERBOSE"
- case debug = "π DEBUG"
- case info = "π‘ INFO"
- case warning = "β οΈ WARNING"
- case error = "π¨ ERROR"
- }
- private static func timeString() -> String {
- let now = Date()
- let dateFormatter = DateFormatter()
- dateFormatter.locale = Locale(identifier: "ko_KR") // λ‘μΌμΌ μ€μ
- dateFormatter.dateFormat = "yyyy-MM-dd hh:mm:ss.SSSS" // λ μ§ νμ μ€μ
- let dateNow = dateFormatter.string(from: now)
- return dateNow
- }
- private static func logger(_ level: LogLevel, fileName: String, line: Int, funcName: String, output: Any...) {
- #if DEBUG
- if output.count < 2 {
- guard let printOut = output.first else { return }
- print("\(timeString()) \(level) \(printOut) -> \(funcName) Line: \(line) \(fileName)")
- } else {
- print("\(timeString()) \(level) ")
- for i in output {
- print(i)
- }
- print(" -> \(funcName) Line: \(line) \(fileName)")
- }
- #endif
- }
- static func v(fileName: String = #file, line: Int = #line, funcName: String = #function, _ output: Any...) {
- logger(.verbose, fileName: fileName, line: line, funcName: funcName, output: output)
- }
- static func d(fileName: String = #file, line: Int = #line, funcName: String = #function, _ output: Any...) {
- logger(.debug, fileName: fileName, line: line, funcName: funcName, output: output)
- }
- static func i(fileName: String = #file, line: Int = #line, funcName: String = #function, _ output: Any...) {
- logger(.info, fileName: fileName, line: line, funcName: funcName, output: output)
- }
- static func w(fileName: String = #file, line: Int = #line, funcName: String = #function, _ output: Any...) {
- logger(.warning, fileName: fileName, line: line, funcName: funcName, output: output)
- }
- static func e(fileName: String = #file, line: Int = #line, funcName: String = #function, _ output: Any...) {
- logger(.error, fileName: fileName, line: line, funcName: funcName, output: output)
- }
- }
Add Comment
Please, Sign In to add comment