diff options
author | Pedro Algarvio <pedro@algarvio.me> | 2011-06-03 17:48:22 +0100 |
---|---|---|
committer | Pedro Algarvio <pedro@algarvio.me> | 2011-06-03 17:48:22 +0100 |
commit | 87e767d4c1d03f88cef6cd3f9d7c71ed2ac06e29 (patch) | |
tree | 3b7a839b6a58cf005bf088ad30f5856d559e4bd3 /deluge/log.py | |
parent | c00391a852ec00375e961ce6bb635c7f1afddff8 (diff) | |
parent | ce406674ecba03407466d7a13669bd1dcba6af7a (diff) | |
download | deluge-87e767d4c1d03f88cef6cd3f9d7c71ed2ac06e29.tar.gz deluge-87e767d4c1d03f88cef6cd3f9d7c71ed2ac06e29.tar.bz2 deluge-87e767d4c1d03f88cef6cd3f9d7c71ed2ac06e29.zip |
Merge branch 'master' into plugins-namespace
Diffstat (limited to 'deluge/log.py')
-rw-r--r-- | deluge/log.py | 45 |
1 files changed, 29 insertions, 16 deletions
diff --git a/deluge/log.py b/deluge/log.py index b014fa9c7..04dfd75f0 100644 --- a/deluge/log.py +++ b/deluge/log.py @@ -48,9 +48,9 @@ __all__ = ["setupLogger", "setLoggerLevel", "getPluginLogger", "LOG"] LoggingLoggerClass = logging.getLoggerClass() if 'dev' in common.get_version(): - DEFAULT_LOGGING_FORMAT = "%%(asctime)s.%%(msecs)03.0f [%%(name)-%ds:%%(lineno)-4d][%%(levelname)-8s] %%(message)s" + DEFAULT_LOGGING_FORMAT = "%%(asctime)s.%%(msecs)03.0f [%%(levelname)-8s][%%(name)-%ds:%%(lineno)-4d] %%(message)s" else: - DEFAULT_LOGGING_FORMAT = "%%(asctime)s [%%(name)-%ds][%%(levelname)-8s] %%(message)s" + DEFAULT_LOGGING_FORMAT = "%%(asctime)s [%%(levelname)-8s][%%(name)-%ds] %%(message)s" MAX_LOGGER_NAME_LENGTH = 3 class Logging(LoggingLoggerClass): @@ -117,6 +117,7 @@ class Logging(LoggingLoggerClass): return rv levels = { + "none": logging.NOTSET, "info": logging.INFO, "warn": logging.WARNING, "warning": logging.WARNING, @@ -140,8 +141,10 @@ def setupLogger(level="error", filename=None, filemode="w"): if logging.getLoggerClass() is not Logging: logging.setLoggerClass(Logging) + logging.addLevelName(5, 'TRACE') + logging.addLevelName(1, 'GARBAGE') - level = levels.get(level, "error") + level = levels.get(level, logging.ERROR) rootLogger = logging.getLogger() @@ -149,7 +152,7 @@ def setupLogger(level="error", filename=None, filemode="w"): import logging.handlers handler = logging.handlers.RotatingFileHandler( filename, filemode, - maxBytes=5*1024*1024, # 5 Mb + maxBytes=50*1024*1024, # 50 Mb backupCount=3, encoding='utf-8', delay=0 @@ -162,6 +165,7 @@ def setupLogger(level="error", filename=None, filemode="w"): ) else: handler = logging.StreamHandler() + handler.setLevel(level) formatter = logging.Formatter( @@ -263,21 +267,30 @@ class __BackwardsCompatibleLOG(object): import warnings logger_name = 'deluge' stack = inspect.stack() - module_stack = stack.pop(1) + stack.pop(0) # The logging call from this module + module_stack = stack.pop(0) # The module that called the log function caller_module = inspect.getmodule(module_stack[0]) + # In some weird cases caller_module might be None, try to continue + caller_module_name = getattr(caller_module, '__name__', '') warnings.warn_explicit(DEPRECATION_WARNING, DeprecationWarning, module_stack[1], module_stack[2], - caller_module.__name__) - for member in stack: - module = inspect.getmodule(member[0]) - if not module: - continue - if module.__name__ in ('deluge.plugins.pluginbase', - 'deluge.plugins.init'): - logger_name += '.plugin.%s' % caller_module.__name__ - # Monkey Patch The Plugin Module - caller_module.log = logging.getLogger(logger_name) - break + caller_module_name) + if caller_module: + for member in stack: + module = inspect.getmodule(member[0]) + if not module: + continue + if module.__name__ in ('deluge.plugins.pluginbase', + 'deluge.plugins.init'): + logger_name += '.plugin.%s' % caller_module_name + # Monkey Patch The Plugin Module + caller_module.log = logging.getLogger(logger_name) + break + else: + logging.getLogger(logger_name).warning( + "Unable to monkey-patch the calling module's `log` attribute! " + "You should really update and rebuild your plugins..." + ) return getattr(logging.getLogger(logger_name), name) LOG = __BackwardsCompatibleLOG() |