~tarmac-control-tower/tarmac/main

« back to all changes in this revision

Viewing changes to tarmac/log.py

  • Committer: Paride Legovini
  • Date: 2019-06-26 18:55:59 UTC
  • Revision ID: paride.legovini@canonical.com-20190626185559-4s54947lxwoq5m7i
Repository converted to git

https://code.launchpad.net/tarmac/+git

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
'''Logging utilities for Tarmac.'''
2
 
import errno
3
 
import logging
4
 
import os
5
 
import sys
6
 
 
7
 
from tarmac.config import TarmacConfig
8
 
 
9
 
 
10
 
def ensure_log_dir(log_file):
11
 
    if not log_file:
12
 
        return
13
 
    log_dir = os.path.dirname(log_file)
14
 
    try:
15
 
        os.makedirs(log_dir)
16
 
    except OSError, e:
17
 
        # If the directory already exists, just pass. Otherwise, log to stderr
18
 
        # because we probably can't write to the actual log file.
19
 
        if getattr(e, 'errno', None) != errno.EEXIST:
20
 
            err_msg = "Failed to create logging directory: %s\n%s\n" % (
21
 
                log_dir, str(e))
22
 
            sys.stderr.write(err_msg)
23
 
 
24
 
 
25
 
def set_up_logging(config=None):
26
 
    if not config:
27
 
        config = TarmacConfig()
28
 
 
29
 
    # Set up logging.
30
 
    logger = logging.getLogger('tarmac')
31
 
    logger.setLevel(logging.DEBUG)
32
 
 
33
 
    log_file = config.get('Tarmac', 'log_file')
34
 
    ensure_log_dir(log_file)
35
 
    file_handler = logging.FileHandler(filename=log_file)
36
 
    file_handler.setLevel(logging.INFO)
37
 
    file_handler.setFormatter(
38
 
        logging.Formatter('%(asctime)s %(levelname)-8s %(message)s',
39
 
                          '%Y-%m-%d %H:%M:%S'))
40
 
    logger.addHandler(file_handler)
41
 
    logger.debug('Logging to %(logfile)s' % {'logfile': log_file})
42
 
 
43
 
    # Handle logging for 'bzr' logger
44
 
    bzr_logger = logging.getLogger('bzr')
45
 
    bzr_logger.setLevel(logging.INFO)
46
 
    bzr_logger.addHandler(file_handler)
47
 
 
48
 
 
49
 
def set_up_debug_logging():
50
 
    logger = logging.getLogger('tarmac')
51
 
    stderr_handler = logging.StreamHandler(sys.stderr)
52
 
    stderr_handler.setLevel(logging.DEBUG)
53
 
    logger.addHandler(stderr_handler)