S3Log
Table of Contents
Purpose
S3Log is a simple global logging facility for Sahana Eden.
Logger
The logger is called like:
current.log.error("Something went wrong", value="Example")
Which gives a log entry like:
2014-02-16 11:58:41 S3LOG ERROR: Something went wrong: Example
The logger functions correspond to the severity level of the message:
- current.log.critical() (highest)
- current.log.error()
- current.log.warning()
- current.log.info()
- current.log.debug() (lowest)
The call signature of all logger functions is identical with the example above. The "value" parameter is optional.
Configuration
The logger can be configured in models/000_config:
# Configure the log level ("DEBUG", "INFO", "WARNING", "ERROR" or "CRITICAL"), None = turn off logging #settings.log.level = None # Uncomment to write log messages to the console (sys.stderr) #settings.log.console = True # Configure a log file (file name) #settings.log.logfile = None # Uncomment to get detailed caller information #settings.log.caller_info = True
Log Level
settings.log.level = "DEBUG"
determines the minimum severity level at which messages will be logged.
Severity levels:
- CRITICAL (highest)
- ERROR
- WARNING
- INFO
- DEBUG (lowest)
- None turns all logging off.
Console
settings.log.console = True
enables logging to the system error console (sys.stderr). False disables console logging.
Console logging can be enabled in parallel with file logging. Console logs on remote servers are not easily accessible, though.
Log File
settings.log.logfile = "/var/log/eden.log"
enables logging to the specified file. The logger rotates 3 log files with a maximum size of 1MB: /var/log/eden.log, /var/log/eden.log.1 and /var/log/eden.log.2 None disables logging to file.
File logging can be enabled in parallel with console logging.
Caller Info
With
settings.log.caller_info = True
the log messages will include information about the origin of the log message (file name, line number, function name):
2014-02-16 11:58:23 (applications/eden/modules/s3/s3rest.py 477 __init__) ERROR: Something went wrong: Example