scripts/cranslib/clogger.py
2014-07-14 03:10:42 +02:00

43 lines
1.3 KiB
Python

#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
# Basic logger, storing data in /var/log/clogger/*.log
# Author : Pierre-Elliott Bécue <becue@crans.org>
# License : GPLv3
# Date : 27/04/2014
import logging
class CLogger(logging.Logger):
"""
Crans logger
"""
def __init__(self, loggerName, service, level, debug=False):
"""
Initializes logger. The debug variable is useful to have a print to stdout (when debugging)
"""
super(CLogger, self).__init__(loggerName)
# Creates FileHandler
self.fh = logging.FileHandler("/var/log/clogger/%s.log" % (loggerName,))
# Catches appropriate level in logging.
self.fhlevel = getattr(logging, level.upper(), logging.INFO)
self.fh.setLevel(self.fhlevel)
# Creates formatter
self.formatter = logging.Formatter('%%(asctime)s - %%(name)s - %(service)s - %%(levelname)s - %%(message)s' % {'service': service})
# Adds formatter to FileHandler
self.fh.setFormatter(self.formatter)
if debug:
self.sh = logging.StreamHandler()
self.shlevel = logging.DEBUG
self.sh.setLevel(self.shlevel)
self.sh.setFormatter(self.formatter)
self.addHandler(self.sh)
# Adds FileHandler to Handlers
self.addHandler(self.fh)