Source code for mill.configurator.classic

# :coding: utf-8
# :copyright: Copyright (c) 2013 Martin Pengelly-Phillips
# :license: See LICENSE.txt.

import sys
import tempfile
from datetime import datetime

import mill
from mill.handler.stream import Stream
from mill.filterer.level import Level
from mill.formatter.field import Field


[docs]def configure(level='info', filepath=None, *args, **kw): '''Configure the logging system in a classic manner. *level* will determine the minimum level to display on stderr. *filepath* can be used to set where the log file should be stored. It defaults to a temporary file named after the current date and time. ''' stderr_handler = Stream( sys.stderr, filterer=Level(min=level, max=None), formatter=Field(keys=['level', 'name', 'message', 'traceback'], template='{value}') ) mill.root.handlers['stderr'] = stderr_handler if filepath is None: prefix = datetime.now().strftime('mill-%Y_%m_%d-%H_%M_%S-') _, filepath = tempfile.mkstemp(prefix=prefix, suffix='.log') file_descriptor = open(filepath, 'a') file_handler = Stream( file_descriptor, filterer=Level(min=None, max=None), formatter=Field(keys=['timestamp', 'level', 'name', 'message', 'traceback']) ) mill.root.handlers['file'] = file_handler

Project Versions

This Page