Skip to content

Instantly share code, notes, and snippets.

@RyogaK
Created June 14, 2016 07:22
Show Gist options
  • Save RyogaK/a3bc168cd13593642c92ec9fd01ccee5 to your computer and use it in GitHub Desktop.
Save RyogaK/a3bc168cd13593642c92ec9fd01ccee5 to your computer and use it in GitHub Desktop.
//
// LogFormatter.swift
//
// Created by Ryoga Kitagawa on 3/25/16.
// Copyright © 2016 Givery. All rights reserved.
//
import Foundation
import CocoaLumberjackSwift
import CocoaLumberjack.DDDispatchQueueLogFormatter
class LogFormatter: DDDispatchQueueLogFormatter {
let dateFormatter: NSDateFormatter
static func applyFormatter() {
#if CONFIGURATION_AppStore
defaultDebugLevel = DDLogLevel.Warning
#else
defaultDebugLevel = DDLogLevel.Verbose
#endif
DDTTYLogger.sharedInstance().logFormatter = LogFormatter()
DDLog.addLogger(DDTTYLogger.sharedInstance())
}
override init!() {
self.dateFormatter = NSDateFormatter()
self.dateFormatter.dateFormat = "yyyy/MM/dd HH:mm:ss:SSS"
super.init()
}
override func formatLogMessage(logMessage: DDLogMessage!) -> String! {
var logLevel: String
switch logMessage.flag {
case DDLogFlag.Error:
logLevel = "E"
case DDLogFlag.Warning:
logLevel = "W"
case DDLogFlag.Info:
logLevel = "I"
case DDLogFlag.Debug:
logLevel = "D"
case DDLogFlag.Verbose:
logLevel = "V"
default:
logLevel = "U" // Unknown
}
let dateAndTime = self.dateFormatter.stringFromDate(logMessage.timestamp)
let queueLabel = self.queueThreadLabelForLogMessage(logMessage)
let fileName = (logMessage.file as NSString).lastPathComponent
let lineNumber = logMessage.line
let function = logMessage.function
let message = logMessage.message
return "\(dateAndTime) [\(logLevel)] [\(queueLabel)] [\(fileName):\(lineNumber) \(function)] \n\(message) "
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment