MMLogger 0.1.4

MMLogger 0.1.4

TestsTested
LangLanguage SwiftSwift
License MIT
ReleasedLast Release May 2017
SwiftSwift Version 3.0
SPMSupports SPM

Maintained by Mateusz Mackowiak.



MMLogger 0.1.4

  • By
  • Mateusz Mackowiak

MMLogger

Example

To run the example project, clone the repo, and run pod install from the Example directory first.

Requirements

Installation

MMLogger is available through CocoaPods. To install it, simply add the following line to your Podfile:

pod "MMLogger"

Usage

Basic usage:

import MMLogger

MMLogger.default.warning("warning")

Log Levels

public enum MMLogLevel : UInt {
    case off
    case error
    case warning
    case info
    case debug
    case verbose
}

Create a wrapper for simple ussage

public var log: MMLogger {
    return MMLogger.default
}

log.warning("warning")

By default an instance of MMPrintLogger.default is registered for log level .verbose To remove default logger use MMLogger.default.removeAllLoggers()

Adding default logger for custom log level:

// or log.addLogger(logger: MMPrintLogger(), for: .debug) 
MMLogger.default.addLogger(logger: MMPrintLogger.default, for: .debug)

Adding a custom Logger

class MYCustomLogger: NSObject, MMLoggerProtocol {

    func log(message: MMLogMessage) {
        print("\(message.message)\n")
    }
}

// or log.addLogger(logger: MYCustomLogger(), for: .warning) 
MMLogger.default.addLogger(logger: MYCustomLogger(), for: .warning)

Adding a custom Formatter

class MyLoggerFormatter: NSObject, MMLoggerFormatter {
    func format(_ message: MMLogMessage) -> String {
        return "++++++++++\n\(message.date) [\(message.level)] \(message.message)\n"
    }
}

let logger = MMPrintLogger()
logger.formatter = MyLoggerFormatter()
// or log.addLogger(logger: logger, for: .verbose) 
MMLogger.default.addLogger(logger: logger, for: .verbose)

Add Logstash logger

let logstashLogger = MMLogstashLogger(host: "localhost", port: 9601, timeout: 5, logActivity: true)
log.addLogger(logstashLogger, from: .verbose)

Setup Logstash / Kibana / Elasticsearch server

Install components

brew install elasticsearch
brew services start elasticsearch

brew install kibana
brew services start kibana

brew install logstash

Use logstash-config.conf to configure logstash

LaunchAgents:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.bcd.logstash</string>
<key>KeepAlive</key>
<true/>
<key>StandardOutPath</key>
<string>~/Documents/logstash.log</string>
<key>StandardErrorPath</key>
<string>~/Documents/logstash.log</string>
<key>ProgramArguments</key> 
<array>
<string>/usr/local/bin/logstash</string>
<string>-f</string>
<string>~/Documents/logstash-config.conf</string>
</array>
<key>RunAtLoad</key>
<true/> 
</dict>
</plist>

Author

Mateusz Mackowiak, [email protected]

License

MMLogger is available under the MIT license. See the LICENSE file for more info.