mirror of
https://github.com/schnidrig/openhab-ansible
synced 2026-01-12 08:58:46 +01:00
56 lines
1.8 KiB
Python
56 lines
1.8 KiB
Python
import logging
|
|
from logging.handlers import RotatingFileHandler
|
|
|
|
LOG_FILE = '/var/log/activity.log'
|
|
|
|
DEBUG_LEVELV_NUM = 9
|
|
logging.addLevelName(DEBUG_LEVELV_NUM, "DEBUGV")
|
|
|
|
|
|
class CustomLogger(logging.Logger):
|
|
def _log(self, level, # pylint: disable=too-many-arguments,unused-argument
|
|
msg,
|
|
args,
|
|
exc_info=None,
|
|
extra=None,
|
|
stack_info=False,
|
|
exc_info_debug=False,
|
|
**kwargs):
|
|
if exc_info_debug and self.isEnabledFor(logging.DEBUG):
|
|
exc_info = True
|
|
super()._log(level, msg, args, exc_info, extra, stack_info)
|
|
|
|
def __new_style_log(self, level, msg, args, exc_info=None, extra=None, # pylint: disable=too-many-arguments
|
|
stack_info=False, **kwargs):
|
|
if kwargs.pop('style', "%") == "{": # optional
|
|
msg = msg.format(*args)
|
|
args = []
|
|
self._log(level, msg, args, exc_info, extra, stack_info)
|
|
|
|
def debugv(self, msg, *args, **kwargs):
|
|
if self.isEnabledFor(DEBUG_LEVELV_NUM):
|
|
self.__new_style_log(DEBUG_LEVELV_NUM, msg, args, **kwargs)
|
|
|
|
@staticmethod
|
|
def getLogger(name):
|
|
return logging.getLogger(name)
|
|
|
|
|
|
logging.setLoggerClass(CustomLogger)
|
|
logger = logging.getLogger()
|
|
|
|
file_handler = RotatingFileHandler(LOG_FILE, 'a', 1000000, 1, encoding='utf8')
|
|
formatter = logging.Formatter('%(asctime)s :: %(levelname)s :: %(message)s')
|
|
stream_handler = logging.StreamHandler()
|
|
|
|
|
|
def my_logger(handler_level=logging.INFO):
|
|
logger.setLevel(handler_level)
|
|
file_handler.setLevel(handler_level)
|
|
file_handler.setFormatter(formatter)
|
|
logger.addHandler(file_handler)
|
|
stream_handler.setLevel(handler_level)
|
|
stream_handler.setFormatter(formatter)
|
|
logger.addHandler(stream_handler)
|
|
|