TestsTested | ✗ |
LangLanguage | SwiftSwift |
License | MIT |
ReleasedLast Release | May 2017 |
SwiftSwift Version | 3.0 |
SPMSupports SPM | ✗ |
Maintained by Mateusz Mackowiak.
To run the example project, clone the repo, and run pod install
from the Example directory first.
MMLogger is available through CocoaPods. To install it, simply add the following line to your Podfile:
pod "MMLogger"
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>
Mateusz Mackowiak, [email protected]
MMLogger is available under the MIT license. See the LICENSE file for more info.