Source code for django_utils.management.commands.base_command
import logging
from python_utils import logger
from django.core.management import base
DEFAULT_VERBOSITY = 2
VERBOSITY_LOG_MAP = {
0: logging.ERROR,
1: logging.WARN,
2: logging.INFO,
3: logging.DEBUG,
}
[docs]class CustomBaseCommand(base.BaseCommand, logger.Logged):
loggers = ()
def __init__(self):
self.verbosity = DEFAULT_VERBOSITY
base.BaseCommand.__init__(self)
[docs] def handle(self, *args, **kwargs):
self.verbosity = int(kwargs.get('verbosity', DEFAULT_VERBOSITY))
self.log = self.logger = self.create_logger()
[docs] def create_logger(self):
name = self.__class__.__module__.split('.')[-1]
loggers = self.loggers + ('management.commands.%s' % name,)
for logger_name in loggers:
logger = logging.getLogger(logger_name)
logger.setLevel(VERBOSITY_LOG_MAP[self.verbosity])
return logger
[docs]class CustomAppCommand(CustomBaseCommand, base.AppCommand):
pass