[Yum-devel] [PATCH] Improve URLGRABBER_DEBUG, add max_connections. BZ 853432
Zdeněk Pavlas
zpavlas at redhat.com
Wed Dec 5 11:39:44 UTC 2012
- Something pulled in by Yum adds stderr handler to the root logger.
set propagate = False to avoid duping our logs.
- Change loglevel of some less important stuff from info to debug.
Enable curl verbose output at DEBUG level only.
- "attempt 1/None": long this only once.
- Add logging of #used/limit connection counts.
This makes "URLGRABBER_DEBUG=INFO,grab.log yum ..." useable again.
---
urlgrabber/grabber.py | 15 ++++++++++-----
1 files changed, 10 insertions(+), 5 deletions(-)
diff --git a/urlgrabber/grabber.py b/urlgrabber/grabber.py
index ec63e47..78c2e59 100644
--- a/urlgrabber/grabber.py
+++ b/urlgrabber/grabber.py
@@ -585,6 +585,7 @@ def _init_default_logger(logspec=None):
else: handler = logging.FileHandler(filename)
handler.setFormatter(formatter)
DBOBJ = logging.getLogger('urlgrabber')
+ DBOBJ.propagate = False
DBOBJ.addHandler(handler)
DBOBJ.setLevel(level)
except (KeyError, ImportError, ValueError):
@@ -593,8 +594,8 @@ def _init_default_logger(logspec=None):
def _log_package_state():
if not DEBUG: return
- DEBUG.info('urlgrabber version = %s' % __version__)
- DEBUG.info('trans function "_" = %s' % _)
+ DEBUG.debug('urlgrabber version = %s' % __version__)
+ DEBUG.debug('trans function "_" = %s' % _)
_init_default_logger()
_log_package_state()
@@ -1309,7 +1310,7 @@ class PyCurlFileObject(object):
if len(self._hdr_dump) != 0 and buf == '\r\n':
self._hdr_ended = True
- if DEBUG: DEBUG.info('header ended:')
+ if DEBUG: DEBUG.debug('header ended:')
return len(buf)
except KeyboardInterrupt:
@@ -1349,7 +1350,7 @@ class PyCurlFileObject(object):
self.curl_obj.setopt(pycurl.OPT_FILETIME, True)
self.curl_obj.setopt(pycurl.FOLLOWLOCATION, True)
- if DEBUG:
+ if DEBUG and DEBUG.level <= 10:
self.curl_obj.setopt(pycurl.VERBOSE, True)
if opts.user_agent:
self.curl_obj.setopt(pycurl.USERAGENT, opts.user_agent)
@@ -2170,7 +2171,6 @@ def parallel_wait(meter=None):
def start(opts, tries):
opts.tries = tries
- if DEBUG: DEBUG.info('attempt %i/%s: %s', opts.tries, opts.retry, opts.url)
try:
dl.start(opts)
except OSError, e:
@@ -2266,6 +2266,8 @@ def parallel_wait(meter=None):
# check global limit
while len(dl.running) >= default_grabber.opts.max_connections:
perform()
+ if DEBUG:
+ DEBUG.info('max_connections: %d/%d', len(dl.running), default_grabber.opts.max_connections)
if opts.mirror_group:
mg, errors, failed, removed = opts.mirror_group
@@ -2314,6 +2316,9 @@ def parallel_wait(meter=None):
key, limit = opts.async
while host_con.get(key, 0) >= limit:
perform()
+ if DEBUG:
+ DEBUG.info('max_connections(%s): %d/%d', key, host_con.get(key, 0), limit)
+
start(opts, 1)
except IOError, e:
if e.errno != 4: raise
--
1.7.4.4
More information about the Yum-devel
mailing list