diff --git a/src/common/gajim.py b/src/common/gajim.py index 3eac8449517a4d494ccf5d19ffc8fcc648b2a8f8..25798761b4d217a39473b5d1e7155b5aded12a16 100644 --- a/src/common/gajim.py +++ b/src/common/gajim.py @@ -67,16 +67,9 @@ thread_interface = None # Interface to run a thread and then a callback config = config.Config() version = config.get('version') connections = {} # 'account name': 'account (connection.Connection) instance' -verbose = False ipython_window = None -h = logging.StreamHandler() -f = logging.Formatter('%(asctime)s %(name)s: %(message)s', '%d %b %Y %H:%M:%S') -h.setFormatter(f) -log = logging.getLogger('Gajim') -log.addHandler(h) -del h -del f +log = logging.getLogger('gajim') import logger logger = logger.Logger() # init the logger diff --git a/src/gajim.py b/src/gajim.py index dda9c25a5aa967dbff79e4ce757cc584e3a9e514..41f9e10578a421c86715c8ff03c7ccbed7975f68 100644 --- a/src/gajim.py +++ b/src/gajim.py @@ -65,56 +65,18 @@ if os.name == 'nt': # needed for docutils sys.path.append('.') +from common import logging_helpers +logging_helpers.init('TERM' in os.environ) + import logging -consoleloghandler = logging.StreamHandler() -consoleloghandler.setLevel(1) -consoleloghandler.setFormatter( - logging.Formatter('%(asctime)s %(name)s: %(levelname)s: %(message)s') - ) -log = logging.getLogger('gajim') -log.setLevel(logging.WARNING) -log.addHandler(consoleloghandler) -log.propagate = False +# gajim.gui or gajim.gtk more appropriate ? log = logging.getLogger('gajim.gajim') -# create intermediate loggers -logging.getLogger('gajim.c') -logging.getLogger('gajim.c.x') - import getopt from common import i18n -def parseLogLevel(arg): - if arg.isdigit(): - return int(arg) - if arg.isupper(): - return getattr(logging, arg) - raise ValueError(_('%s is not a valid loglevel'), repr(arg)) - -def parseLogTarget(arg): - arg = arg.lower() - if arg.startswith('.'): return arg[1:] - if arg.startswith('gajim'): return arg - return 'gajim.' + arg - -def parseAndSetLogLevels(arg): - for directive in arg.split(','): - directive = directive.strip() - targets, level = directive.rsplit('=', 1) - level = parseLogLevel(level.strip()) - for target in targets.split('='): - target = parseLogTarget(target.strip()) - if target == '': - consoleloghandler.setLevel(level) - print "consoleloghandler level set to %s" % level - else: - logger = logging.getLogger(target) - logger.setLevel(level) - print "Logger %s level set to %d" % (target, level) - def parseOpts(): profile = '' - verbose = False config_path = None try: @@ -130,21 +92,19 @@ def parseOpts(): print 'gajim [--help] [--quiet] [--verbose] [--loglevel subsystem=level[,subsystem=level[...]]] [--profile name] [--config-path]' sys.exit() elif o in ('-q', '--quiet'): - consoleloghandler.setLevel(logging.CRITICAL) - verbose = False + logging_helpers.set_quiet() elif o in ('-v', '--verbose'): - consoleloghandler.setLevel(logging.INFO) - verbose = True + logging_helpers.set_verbose() elif o in ('-p', '--profile'): # gajim --profile name profile = a elif o in ('-l', '--loglevel'): - parseAndSetLogLevels(a) + logging_helpers.set_loglevels(a) elif o in ('-c', '--config-path'): config_path = a - return profile, verbose, config_path + return profile, config_path -profile, verbose, config_path = parseOpts() -del parseOpts, parseAndSetLogLevels, parseLogTarget, parseLogLevel +profile, config_path = parseOpts() +del parseOpts import locale profile = unicode(profile, locale.getpreferredencoding()) @@ -288,9 +248,6 @@ from common import optparser from common import dataforms from common import passwords -if verbose: gajim.verbose = True -del verbose - gajimpaths = common.configpaths.gajimpaths pid_filename = gajimpaths['PID_FILE'] @@ -3250,9 +3207,9 @@ class Interface: } cfg_was_read = parser.read() - # Do not set gajim.verbose to False if -v option was given + # override logging settings from config (don't take care of '-q' option) if gajim.config.get('verbose'): - gajim.verbose = True + logging_helpers.set_verbose() # Is Gajim default app? if os.name != 'nt' and gajim.config.get('check_if_gajim_is_default'): @@ -3300,11 +3257,6 @@ class Interface: if gajim.config.get('autodetect_browser_mailer') or not cfg_was_read: gtkgui_helpers.autodetect_browser_mailer() - if gajim.verbose: - gajim.log.setLevel(gajim.logging.DEBUG) - else: - gajim.log.setLevel(None) - gajim.idlequeue = idlequeue.get_idlequeue() # resolve and keep current record of resolved hosts gajim.resolver = resolver.get_resolver(gajim.idlequeue) @@ -3500,9 +3452,8 @@ if __name__ == '__main__': # ^C exits the application normally to delete pid file signal.signal(signal.SIGINT, sigint_cb) - if gajim.verbose: - print >> sys.stderr, "Encodings: d:%s, fs:%s, p:%s" % \ - (sys.getdefaultencoding(), sys.getfilesystemencoding(), locale.getpreferredencoding()) + log.info("Encodings: d:%s, fs:%s, p:%s", sys.getdefaultencoding(), \ + sys.getfilesystemencoding(), locale.getpreferredencoding()) if ((os.name != 'nt') and (sys.platform != 'darwin')): # Session Management support