Latest 2.0.0
License MIT
Platforms ios 8.0, osx 10.9, watchos 2.0, tvos 9.0, requires ARC

A logging framework for swift



Log.debug("Current loggers: (Log.loggers)")
Log.warn("Using formatter: (Log.loggers.first!.formatter)")
Log.severe("some error")
04-21 13:04:30.040 LoggTests.swift testFileLogger() [14] ℹ️ Debug: Current loggers: [Logg.ConsoleLogger]
04-21 13:04:30.041 LoggTests.swift testFileLogger() [15] ⚠️ Warning: Using formatter: Logg.DefaultFormatter
04-21 13:04:30.041 LoggTests.swift testFileLogger() [16] ❗ Error: invalid
04-21 13:04:30.041 LoggTests.swift testFileLogger() [17] ‼️ Severe: some error


Log is the class that dispatch the messages to all the loggers, you can configure this loggers modifying the loggers static property:

if debug {
  Log.loggers = [ConsoleLogger()]
} else {
  Log.loggers = [CustomLogger(level: [.error, .severe])]

Each logger has a property named level that you can customize:

let consoleLogger = Log.loggers.first
consoleLogger?.level = [.debug, .warning]

The level is an OptionSet with 4 basic values: debug, warning, error, severe and additionally all and none


You can create and register your own loggers, just implement the Logger protocol and add an instance to the loggers static property of the Log class. The Logger protocol defines a couple of properties, level and formatter, and four functions: debug, warn, error and severe that correspond to the log levels


You can create your own formatter and use it with the loggers you want, just create a class that implements the Formatter protocol and assign it to the logger

let consoleLogger = Log.loggers.first
consoleLogger?.formatter = CustomFormatter()

Latest podspec

    "name": "Logg",
    "version": "2.0.0",
    "summary": "A logging framework for swift",
    "homepage": "",
    "license": {
        "type": "MIT",
        "file": "LICENSE"
    "authors": {
        "Juanjo Arreola": "[email protected]"
    "platforms": {
        "ios": "8.0",
        "osx": "10.9",
        "watchos": "2.0",
        "tvos": "9.0"
    "source": {
        "git": "",
        "tag": "2.0.0"
    "source_files": "Sources/*.swift",
    "requires_arc": true,
    "pushed_with_swift_version": "4.0"

Pin It on Pinterest

Share This