Formatter.swift 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. //
  2. // Formatter.swift
  3. // Lumberjack
  4. //
  5. // Created by C.W. Betts on 10/3/14.
  6. //
  7. //
  8. import Foundation
  9. import CocoaLumberjack.DDDispatchQueueLogFormatter
  10. class Formatter: DDDispatchQueueLogFormatter {
  11. let threadUnsafeDateFormatter: DateFormatter
  12. override init() {
  13. threadUnsafeDateFormatter = DateFormatter()
  14. threadUnsafeDateFormatter.formatterBehavior = .behavior10_4
  15. threadUnsafeDateFormatter.dateFormat = "HH:mm:ss.SSS"
  16. super.init()
  17. }
  18. override func format(message logMessage: DDLogMessage) -> String {
  19. let dateAndTime = threadUnsafeDateFormatter.string(from: logMessage.timestamp)
  20. var logLevel: String
  21. let logFlag = logMessage.flag
  22. if logFlag.contains(.error) {
  23. logLevel = "E"
  24. } else if logFlag.contains(.warning){
  25. logLevel = "W"
  26. } else if logFlag.contains(.info) {
  27. logLevel = "I"
  28. } else if logFlag.contains(.debug) {
  29. logLevel = "D"
  30. } else if logFlag.contains(.verbose) {
  31. logLevel = "V"
  32. } else {
  33. logLevel = "?"
  34. }
  35. let formattedLog = "\(dateAndTime) |\(logLevel)| [\(logMessage.fileName) \(logMessage.function ?? "nil")] #\(logMessage.line): \(logMessage.message)"
  36. return formattedLog;
  37. }
  38. }