Skip to content

Instantly share code, notes, and snippets.

@akramhussein
Created August 11, 2015 15:03
Show Gist options
  • Save akramhussein/0274eca4f08cb0f1ad29 to your computer and use it in GitHub Desktop.
Save akramhussein/0274eca4f08cb0f1ad29 to your computer and use it in GitHub Desktop.
CustomLogFormatter for CocoaLumberjack - Swift
import Foundation
import CocoaLumberjack
class CustomLogFormatter : NSObject, DDLogFormatter
{
private var dateFormatter : NSDateFormatter!
override init()
{
self.dateFormatter = NSDateFormatter()
self.dateFormatter.dateFormat = "yyyy/MM/dd HH:mm:ss:SSS"
}
func formatLogMessage(logMessage: DDLogMessage!) -> String!
{
var logLevel : String!
switch (logMessage.flag)
{
case DDLogFlag.Error:
logLevel = "Error"
case DDLogFlag.Warning:
logLevel = "Warning"
case DDLogFlag.Info:
logLevel = "Info"
case DDLogFlag.Debug:
logLevel = "Debug"
case DDLogFlag.Verbose:
logLevel = "Verbose"
default:
logLevel = "All"
}
let dateAndTime = self.dateFormatter.stringFromDate(logMessage.timestamp)
let formattedString = String(format: "\(dateAndTime) [\(logLevel)] \(logMessage.function)(\(logMessage.line)): \(logMessage.message)")
return formattedString
}
}
@akramhussein
Copy link
Author

A custom logger for CocoaLumberjack in the format

Date/Time [LogLevel] functionName(lineNumber): Message

e.g.
2015/08/11 16:01:37:227 [Verbose] foo(38): something happened

@akramhussein
Copy link
Author

To use:

    let logger = DDTTYLogger.sharedInstance()
    logger.logFormatter = CustomLogFormatter()        
    DDLog.addLogger(logger)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment