Logger

public class Logger

Logs events of interest.

A LogRecord describes a loggable event. Each record has a level which reflects the importance of the event. If the log level of a record is at least as high as the level of the logger, the logger dispatches the record to the logger’s current handler.

Example:

let logger = Logger()
logger.level = .warning
logger.handler = ConsoleLogHandler()

let record = LogRecord(level: .warning,
                       message: "Watch out!",
                       context: "Session-14",
                       timestamp: Date(),
                       file: #file,
                       function: #function,
                       line: #line)

logger.log(record) // the record is logged (because LogLevel.warning >= logger.level)

// Convenience methods make logging more concise.
logger.warning("Watch out!", context: "Session-14")

// Examples of other log levels:
logger.severe("This is also logged") // because LogLevel.severe >= logger.level
logger.info("This is not logged")    // because LogLevel.info < logger.level

Logger is threadsafe.

See also

Postgres.logger
  • Creates a Logger.

    Declaration

    Swift

    public init()
  • The log level for this logger. Defaults to LogLevel.info.

    Declaration

    Swift

    public var level: LogLevel { get set }
  • The log handler for this logger. Defaults to a ConsoleLogHandler.

    Declaration

    Swift

    public var handler: LogHandler { get set }
  • Gets whether a LogRecord with the specified log level would be logged.

    Declaration

    Swift

    public func isLoggable(level: LogLevel) -> Bool

    Parameters

    level

    the log level

    Return Value

    whether logged

  • Processes the specified log record.

    Declaration

    Swift

    public func log(_ record: LogRecord)

    Parameters

    record

    the log record

  • Convenience method to log an event.

    Declaration

    Swift

    public func log(level: LogLevel,
                    message: CustomStringConvertible,
                    context: CustomStringConvertible? = nil,
                    file: String = #file,
                    function: String = #function,
                    line: Int = #line)

    Parameters

    level

    the log level that reflects the importance of the event

    message

    a message describing the event

    context

    the context of the event, such as a session or connection identifier

    file

    the name of the file that logged the event

    function

    the name of the function that logged the event

    line

    the line number that logged the event

  • Equivalent to log(level: .severe, ...).

    Declaration

    Swift

    public func severe(_ message: String,
                       context: CustomStringConvertible? = nil,
                       file: String = #file,
                       function: String = #function,
                       line: Int = #line)
  • Equivalent to log(level: .warning, ...).

    Declaration

    Swift

    public func warning(_ message: String,
                        context: CustomStringConvertible? = nil,
                        file: String = #file,
                        function: String = #function,
                        line: Int = #line)
  • Equivalent to log(level: .info, ...).

    Declaration

    Swift

    public func info(_ message: String,
                        context: CustomStringConvertible? = nil,
                        file: String = #file,
                        function: String = #function,
                        line: Int = #line)
  • Equivalent to log(level: .fine, ...).

    Declaration

    Swift

    public func fine(_ message: String,
                        context: CustomStringConvertible? = nil,
                        file: String = #file,
                        function: String = #function,
                        line: Int = #line)
  • Equivalent to log(level: .finer, ...).

    Declaration

    Swift

    public func finer(_ message: String,
                        context: CustomStringConvertible? = nil,
                        file: String = #file,
                        function: String = #function,
                        line: Int = #line)
  • Equivalent to log(level: .finest, ...).

    Declaration

    Swift

    public func finest(_ message: String,
                        context: CustomStringConvertible? = nil,
                        file: String = #file,
                        function: String = #function,
                        line: Int = #line)