timbersaw
is a an automatic logging configurator.
import logging
import contek_timbersaw as timbersaw
timbersaw.setup()
logger = logging.getLogger(__name__)
logger.info('foo bar')
INFO level logging will be written to:
{WORKING_DIRECTORY}/logs/info/{yyyy}-{MM}-{dd}.log
ERROR level logging will be written to:
{WORKING_DIRECTORY}/logs/error/{yyyy}-{MM}-{dd}.log
When an INFO log file passes its active period (defaults to when a new day starts), it gets GZipped. For example:
2009-01-03.log -> 2009-01-03.log.gz
Old logs will be deleted after their retention period. By default, INFO logs are kept for 14 days and ERROR logs are kept for 28 days.
%(asctime)s %(levelname)s %(filename)s:%(lineno)d - %(message)s
%Y-%m-%dT%H:%M:%S
{WORKDING_DIRECTORY}/logs
MIDNIGHT
False
14
28
Settings are configurable via environment properties. They can be set before your program starts using export
. For
example:
export log_error_retention_days=7
Otherwise, they can be set at runtime using os.environ
. For example:
import os
os.environ['log_error_retention_days'] = '7'