Beispiele und Hinweise zur Nutzung von logging


Sie sind hier: RubyLoggerlogging


Übersicht

Mehrfache Ausgabe
Mehrfache Ausgabe mit unterschiedlichem Level
Eigene Level möglich ?
Abfrage auf Level möglich? ?
Format definierbar ?
Tracing möglich? ?
Verhalten bei Logfiles append
URL des Rubyforge-Projekts logging

Vorhandene Level:

Anmerkungen

Coding-Beispiele

Beispiel 1: Logger auf STDOUT

require 'logging'

logger = Logging::Logger['example_logger']
logger.add_appenders( Logging::Appender.stdout )
logger.level = :info

logger.debug "this is a debug message"
logger.info "this is a information"
logger.warn "this is a warning"
logger.error "this is an error message"
logger.fatal "this is a message about a fatal error"

Ausgabe des Loggers auf STDOUT

        INFO  example_logger : this is a information
        WARN  example_logger : this is a warning
    ERROR  example_logger : this is an error message
    FATAL  example_logger : this is a message about a fatal error

Beispiel 2: Logger in Datei

require 'logging'

logger = Logging::Logger['example_logger']
logger.add_appenders( Logging::Appenders::File.new('test2_logger.log'))
logger.level = :info

logger.debug "this is a debug message"
logger.info "this is a information"
logger.warn "this is a warning"
logger.error "this is an error message"
logger.fatal "this is a message about a fatal error"

Ausgabe des Loggers log_warn (File)

 INFO  example_logger : this is a information
 WARN  example_logger : this is a warning
ERROR  example_logger : this is an error message
FATAL  example_logger : this is a message about a fatal error
 INFO  example_logger : this is a information
 WARN  example_logger : this is a warning
ERROR  example_logger : this is an error message
FATAL  example_logger : this is a message about a fatal error

Beispiel 3: Mehrere gleichzeitige Loggerausgaben

Die mehrfache Ausgabe eines Logs kann sinnvoll sein. Fehler (ERROR und FATAL) werden beim Programmablauf ausgegeben (STDOUT), gleichzeitig werden in einer Datei zusätzlich die Warnungen, Informationen und Debughinweise gespeichert.

require 'logging'

logger = Logging::Logger['example_logger']
logger.add_appenders(
   Logging::Appender.stdout,
   Logging::Appenders::File.new('test3_logger.log')
)
logger.level = :info

logger.debug "this is a debug message"
logger.info "this is a information"
logger.warn "this is a warning"
logger.error "this is an error message"
logger.fatal "this is a message about a fatal error"

Ausgabe des Loggers STDOUT

        INFO  example_logger : this is a information
        WARN  example_logger : this is a warning
    ERROR  example_logger : this is an error message
    FATAL  example_logger : this is a message about a fatal error

Ausgabe des Loggers in eine Datei

 INFO  example_logger : this is a information
 WARN  example_logger : this is a warning
ERROR  example_logger : this is an error message
FATAL  example_logger : this is a message about a fatal error