r197 - in /debtorrent/trunk: ./ DebTorrent/ DebTorrent/BT1/

camrdale-guest at users.alioth.debian.org camrdale-guest at users.alioth.debian.org
Sat Aug 4 20:48:51 UTC 2007


Author: camrdale-guest
Date: Sat Aug  4 20:48:51 2007
New Revision: 197

URL: http://svn.debian.org/wsvn/debtorrent/?sc=1&rev=197
Log:
Change to module-level loggers.

Modified:
    debtorrent/trunk/DebTorrent/BT1/AptListener.py
    debtorrent/trunk/DebTorrent/BT1/Connecter.py
    debtorrent/trunk/DebTorrent/BT1/Encrypter.py
    debtorrent/trunk/DebTorrent/BT1/FileSelector.py
    debtorrent/trunk/DebTorrent/BT1/HTTPDownloader.py
    debtorrent/trunk/DebTorrent/BT1/Rerequester.py
    debtorrent/trunk/DebTorrent/BT1/Storage.py
    debtorrent/trunk/DebTorrent/BT1/StorageWrapper.py
    debtorrent/trunk/DebTorrent/BT1/StreamCheck.py
    debtorrent/trunk/DebTorrent/BT1/T2T.py
    debtorrent/trunk/DebTorrent/BT1/makemetafile.py
    debtorrent/trunk/DebTorrent/BT1/track.py
    debtorrent/trunk/DebTorrent/HTTPCache.py
    debtorrent/trunk/DebTorrent/HTTPHandler.py
    debtorrent/trunk/DebTorrent/RateLimiter.py
    debtorrent/trunk/DebTorrent/RawServer.py
    debtorrent/trunk/DebTorrent/SocketHandler.py
    debtorrent/trunk/DebTorrent/bencode.py
    debtorrent/trunk/DebTorrent/inifile.py
    debtorrent/trunk/DebTorrent/iprangeparse.py
    debtorrent/trunk/DebTorrent/launchmanycore.py
    debtorrent/trunk/DebTorrent/parsedir.py
    debtorrent/trunk/DebTorrent/piecebuffer.py
    debtorrent/trunk/DebTorrent/subnetparse.py
    debtorrent/trunk/DebTorrent/torrentlistparse.py
    debtorrent/trunk/debtorrent-client.py

Modified: debtorrent/trunk/DebTorrent/BT1/AptListener.py
URL: http://svn.debian.org/wsvn/debtorrent/debtorrent/trunk/DebTorrent/BT1/AptListener.py?rev=197&op=diff
==============================================================================
--- debtorrent/trunk/DebTorrent/BT1/AptListener.py (original)
+++ debtorrent/trunk/DebTorrent/BT1/AptListener.py Sat Aug  4 20:48:51 2007
@@ -5,6 +5,8 @@
 
 """Listen for download requests from Apt.
 
+ at type logger: C{logging.Logger}
+ at var logger: the logger to send all log messages to for this module
 @type alas: C{string}
 @var alas: the message to send when the data is not found
 @type VERSION: C{string}
@@ -30,6 +32,8 @@
 from DebTorrent.HTTPCache import HTTPCache
 import os, logging
 from DebTorrent.__init__ import version, product_name,version_short
+
+logger = logging.getLogger('DebTorrent.BT1.AptListener')
 
 VERSION = product_name+'/'+version_short
 
@@ -120,7 +124,7 @@
                 self.favicon = h.read()
                 h.close()
             except:
-                logging.warning('specified favicon file does not exist.')
+                logger.warning('specified favicon file does not exist.')
         self.rawserver = rawserver
         self.state = {}
 
@@ -161,7 +165,7 @@
         
         assert not self.request_queue.has_key(connection)
         
-        logging.info('queueing request as file '+str(file_num)+' needs pieces: '+str(pieces_needed))
+        logger.info('queueing request as file '+str(file_num)+' needs pieces: '+str(pieces_needed))
 
         self.request_queue[connection] = (downloader, file_num, pieces_needed, clock())
         
@@ -181,12 +185,12 @@
             # Remove the downloaded pieces from the list of needed ones
             for piece in list(v[2]):
                 if v[0].storagewrapper.do_I_have(piece):
-                    logging.debug('queued request for file '+str(v[1])+' got piece '+str(piece))
+                    logger.debug('queued request for file '+str(v[1])+' got piece '+str(piece))
                     v[2].remove(piece)
                     
             # If no more pieces are needed, return the answer and remove the request
             if not v[2]:
-                logging.info('queued request for file '+str(v[1])+' is complete')
+                logger.info('queued request for file '+str(v[1])+' is complete')
                 del self.request_queue[c]
                 self.answer_package(c, v[0], v[1])
 
@@ -293,7 +297,7 @@
                 '</html>\n')
             return (200, 'OK', {'Server': VERSION, 'Content-Type': 'text/html; charset=iso-8859-1'}, s.getvalue())
         except:
-            logging.exception('Error returning info_page')
+            logger.exception('Error returning info_page')
             return (500, 'Internal Server Error', {'Server': VERSION, 'Content-Type': 'text/html; charset=iso-8859-1'}, 'Server Error')
 
 
@@ -368,7 +372,7 @@
         connections = self.cache_waiting.pop('/'.join(path), None)
         
         if connections is None:
-            logging.warning('no connection exists to return the cached file on')
+            logger.warning('no connection exists to return the cached file on')
             return
 
         # If it's a torrent file, start it
@@ -461,7 +465,7 @@
             return
 
         # Something strange has happened, requeue it
-        logging.warning('requeuing request for file '+str(f)+' as it still needs pieces: '+str(pieces_needed))
+        logger.warning('requeuing request for file '+str(f)+' as it still needs pieces: '+str(pieces_needed))
         self.enqueue_request(connection, d, f, pieces_needed)
         
     
@@ -489,7 +493,7 @@
             assert data[:8] == "Package:"
             h = data.split('\n')
         except:
-            logging.warning('Packages file could not be converted to a torrent')
+            logger.warning('Packages file could not be converted to a torrent')
             return 
 
         sub_pieces = getsubpieces('_'.join(path))
@@ -683,7 +687,7 @@
                 self.allowed_IPs.read_fieldlist(f)
                 self.allowed_ip_mtime = os.path.getmtime(f)
             except (IOError, OSError):
-                logging.warning('unable to read allowed_IP list')
+                logger.warning('unable to read allowed_IP list')
                 
         f = self.config['banned_ips']
         if f and self.banned_ip_mtime != os.path.getmtime(f):
@@ -692,7 +696,7 @@
                 self.banned_IPs.read_rangelist(f)
                 self.banned_ip_mtime = os.path.getmtime(f)
             except (IOError, OSError):
-                logging.warning('unable to read banned_IP list')
+                logger.warning('unable to read banned_IP list')
                 
 
 def size_format(s):

Modified: debtorrent/trunk/DebTorrent/BT1/Connecter.py
URL: http://svn.debian.org/wsvn/debtorrent/debtorrent/trunk/DebTorrent/BT1/Connecter.py?rev=197&op=diff
==============================================================================
--- debtorrent/trunk/DebTorrent/BT1/Connecter.py (original)
+++ debtorrent/trunk/DebTorrent/BT1/Connecter.py Sat Aug  4 20:48:51 2007
@@ -6,6 +6,8 @@
 
 """For maintaining connections to peers.
 
+ at type logger: C{logging.Logger}
+ at var logger: the logger to send all log messages to for this module
 @type CHOKE: C{char}
 @var CHOKE: the code for choke messages
 @type UNCHOKE: C{char}
@@ -37,6 +39,8 @@
 except:
     True = 1
     False = 0
+
+logger = logging.getLogger('DebTorrent.BT1.Connecter')
 
 def toint(s):
     """Convert four-byte big endian representation to a long.
@@ -160,7 +164,7 @@
 
     def close(self):
         """Close the connection."""
-        logging.debug(self.get_ip()+': connection closed')
+        logger.debug(self.get_ip()+': connection closed')
         self.connection.close()
 
     def is_locally_initiated(self):
@@ -204,7 +208,7 @@
         """Send the L{UNCHOKE} message."""
         if self.send_choke_queued:
             self.send_choke_queued = False
-            logging.info(self.get_ip()+': CHOKE SUPPRESSED')
+            logger.info(self.get_ip()+': CHOKE SUPPRESSED')
         else:
             self._send_message(UNCHOKE)
             if ( self.partial_message or self.just_unchoked is None
@@ -227,7 +231,7 @@
         
         self._send_message(REQUEST + tobinary(index) + 
             tobinary(begin) + tobinary(length))
-        logging.debug(self.get_ip()+': sent request '+str(index)+', '+str(begin)+', '+str(begin+length))
+        logger.debug(self.get_ip()+': sent request '+str(index)+', '+str(begin)+', '+str(begin+length))
 
     def send_cancel(self, index, begin, length):
         """Send the L{CANCEL} message.
@@ -245,7 +249,7 @@
         
         self._send_message(CANCEL + tobinary(index) + 
             tobinary(begin) + tobinary(length))
-        logging.debug(self.get_ip()+': sent cancel '+str(index)+', '+str(begin)+', '+str(begin+length))
+        logger.debug(self.get_ip()+': sent cancel '+str(index)+', '+str(begin)+', '+str(begin+length))
 
     def send_bitfield(self, bitfield):
         """Send the L{BITFIELD} message.
@@ -280,9 +284,9 @@
         """
         
         if s:
-            logging.debug(self.get_ip()+': SENDING MESSAGE '+str(ord(s[0]))+' ('+str(len(s))+')')
+            logger.debug(self.get_ip()+': SENDING MESSAGE '+str(ord(s[0]))+' ('+str(len(s))+')')
         else:
-            logging.debug(self.get_ip()+': SENDING MESSAGE keepalive (0)')
+            logger.debug(self.get_ip()+': SENDING MESSAGE keepalive (0)')
         s = tobinary(len(s))+s
         if self.partial_message:
             self.outqueue.append(s)
@@ -309,7 +313,7 @@
             self.partial_message = ''.join((
                             tobinary(len(piece) + 9), PIECE,
                             tobinary(index), tobinary(begin), piece.tostring() ))
-            logging.debug(self.get_ip()+': sending chunk '+str(index)+', '+str(begin)+', '+str(begin+len(piece)))
+            logger.debug(self.get_ip()+': sending chunk '+str(index)+', '+str(begin)+', '+str(begin+len(piece)))
 
         if bytes < len(self.partial_message):
             self.connection.send_message_raw(self.partial_message[:bytes])
@@ -479,7 +483,7 @@
         
         self.ccount += 1
         c = Connection(connection, self, self.ccount)
-        logging.debug(c.get_ip()+': connection made')
+        logger.debug(c.get_ip()+': connection made')
         self.connections[connection] = c
         c.upload = self.make_upload(c, self.ratelimiter, self.totalup)
         c.download = self.downloader.make_download(c)
@@ -495,7 +499,7 @@
         """
         
         c = self.connections[connection]
-        logging.debug(c.get_ip()+': connection closed')
+        logger.debug(c.get_ip()+': connection closed')
         del self.connections[connection]
         if c.download:
             c.download.disconnected()
@@ -537,15 +541,15 @@
         
         c = self.connections[connection]
         t = message[0]
-        logging.debug(c.get_ip()+': message received '+str(ord(t)))
+        logger.debug(c.get_ip()+': message received '+str(ord(t)))
         if t == BITFIELD and c.got_anything:
-            logging.info(c.get_ip()+': misplaced bitfield, closing connection')
+            logger.info(c.get_ip()+': misplaced bitfield, closing connection')
             connection.close()
             return
         c.got_anything = True
         if (t in [CHOKE, UNCHOKE, INTERESTED, NOT_INTERESTED] and 
                 len(message) != 1):
-            logging.debug(c.get_ip()+': bad message length, closing connection')
+            logger.debug(c.get_ip()+': bad message length, closing connection')
             connection.close()
             return
         if t == CHOKE:
@@ -559,12 +563,12 @@
             c.upload.got_not_interested()
         elif t == HAVE:
             if len(message) != 5:
-                logging.debug(c.get_ip()+': bad message length, closing connection')
+                logger.debug(c.get_ip()+': bad message length, closing connection')
                 connection.close()
                 return
             i = toint(message[1:])
             if i >= self.numpieces:
-                logging.debug(c.get_ip()+': bad piece number, closing connection')
+                logger.debug(c.get_ip()+': bad piece number, closing connection')
                 connection.close()
                 return
             if c.download.got_have(i):
@@ -573,47 +577,47 @@
             try:
                 b = Bitfield(self.numpieces, message[1:])
             except ValueError:
-                logging.debug(c.get_ip()+': bad bitfield, closing connection')
+                logger.debug(c.get_ip()+': bad bitfield, closing connection')
                 connection.close()
                 return
             if c.download.got_have_bitfield(b):
                 c.upload.got_not_interested()
         elif t == REQUEST:
             if len(message) != 13:
-                logging.debug(c.get_ip()+': bad message length, closing connection')
+                logger.debug(c.get_ip()+': bad message length, closing connection')
                 connection.close()
                 return
             i = toint(message[1:5])
             if i >= self.numpieces:
-                logging.debug(c.get_ip()+': bad piece number, closing connection')
+                logger.debug(c.get_ip()+': bad piece number, closing connection')
                 connection.close()
                 return
             c.got_request(i, toint(message[5:9]), 
                 toint(message[9:]))
         elif t == CANCEL:
             if len(message) != 13:
-                logging.debug(c.get_ip()+': bad message length, closing connection')
+                logger.debug(c.get_ip()+': bad message length, closing connection')
                 connection.close()
                 return
             i = toint(message[1:5])
             if i >= self.numpieces:
-                logging.debug(c.get_ip()+': bad piece number, closing connection')
+                logger.debug(c.get_ip()+': bad piece number, closing connection')
                 connection.close()
                 return
             c.upload.got_cancel(i, toint(message[5:9]), 
                 toint(message[9:]))
         elif t == PIECE:
             if len(message) <= 9:
-                logging.debug(c.get_ip()+': bad message length, closing connection')
+                logger.debug(c.get_ip()+': bad message length, closing connection')
                 connection.close()
                 return
             i = toint(message[1:5])
             if i >= self.numpieces:
-                logging.debug(c.get_ip()+': bad piece number, closing connection')
+                logger.debug(c.get_ip()+': bad piece number, closing connection')
                 connection.close()
                 return
             if c.download.got_piece(i, toint(message[5:9]), message[9:]):
                 self.got_piece(i)
         else:
-            logging.debug(c.get_ip()+': unknown message type, closing connection')
+            logger.debug(c.get_ip()+': unknown message type, closing connection')
             connection.close()

Modified: debtorrent/trunk/DebTorrent/BT1/Encrypter.py
URL: http://svn.debian.org/wsvn/debtorrent/debtorrent/trunk/DebTorrent/BT1/Encrypter.py?rev=197&op=diff
==============================================================================
--- debtorrent/trunk/DebTorrent/BT1/Encrypter.py (original)
+++ debtorrent/trunk/DebTorrent/BT1/Encrypter.py Sat Aug  4 20:48:51 2007
@@ -6,6 +6,8 @@
 
 """Make encrypted connections to peers.
 
+ at type logger: C{logging.Logger}
+ at var logger: the logger to send all log messages to for this module
 @type MAX_INCOMPLETE: C{int}
 @var MAX_INCOMPLETE: the maximum number of incomplete connections to have
     outstanding before new connections to initiate get queued
@@ -37,7 +39,7 @@
     False = 0
     bool = lambda x: not not x
 
-DEBUG = True
+logger = logging.getLogger('DebTorrent.BT1.Encrypter')
 
 MAX_INCOMPLETE = 8
 
@@ -1179,7 +1181,7 @@
             if self.config['security'] and ip != 'unknown' and ip == dns[0]:
                 return True
         try:
-            logging.debug('initiating connection to: '+str(dns)+', '+str(id)+', '+str(encrypted))
+            logger.debug('initiating connection to: '+str(dns)+', '+str(id)+', '+str(encrypted))
             c = self.raw_server.start_connection(dns)
             con = Connection(self, c, id, encrypted = encrypted)
             self.connections[c] = con

Modified: debtorrent/trunk/DebTorrent/BT1/FileSelector.py
URL: http://svn.debian.org/wsvn/debtorrent/debtorrent/trunk/DebTorrent/BT1/FileSelector.py?rev=197&op=diff
==============================================================================
--- debtorrent/trunk/DebTorrent/BT1/FileSelector.py (original)
+++ debtorrent/trunk/DebTorrent/BT1/FileSelector.py Sat Aug  4 20:48:51 2007
@@ -4,7 +4,12 @@
 #
 # $Id$
 
-"""Enable the selective downloading of files within a torrent."""
+"""Enable the selective downloading of files within a torrent.
+
+ at type logger: C{logging.Logger}
+ at var logger: the logger to send all log messages to for this module
+
+"""
 
 from random import shuffle
 import logging
@@ -14,6 +19,7 @@
     True = 1
     False = 0
 
+logger = logging.getLogger('DebTorrent.BT1.FileSelector')
 
 class FileSelector:
     """Enable the selective downloading of files within a torrent.
@@ -142,7 +148,7 @@
                 assert v >= -1
                 assert v <= 2
         except:
-            logging.warning('Initializing the priority failed', exc_info = True)
+            logger.warning('Initializing the priority failed', exc_info = True)
             return False
         try:
             for f in xrange(self.numfiles):

Modified: debtorrent/trunk/DebTorrent/BT1/HTTPDownloader.py
URL: http://svn.debian.org/wsvn/debtorrent/debtorrent/trunk/DebTorrent/BT1/HTTPDownloader.py?rev=197&op=diff
==============================================================================
--- debtorrent/trunk/DebTorrent/BT1/HTTPDownloader.py (original)
+++ debtorrent/trunk/DebTorrent/BT1/HTTPDownloader.py Sat Aug  4 20:48:51 2007
@@ -6,6 +6,8 @@
 
 """Manage downloading pieces over HTTP.
 
+ at type logger: C{logging.Logger}
+ at var logger: the logger to send all log messages to for this module
 @type VERSION: C{string}
 @var VERSION: the UserAgent identifier sent to all sites
 @type haveall: L{haveComplete}
@@ -26,6 +28,8 @@
 except:
     True = 1
     False = 0
+
+logger = logging.getLogger('DebTorrent.BT1.HTTPDownloader')
 
 VERSION = product_name+'/'+version_short
 
@@ -207,7 +211,7 @@
             self.endflag = True
             self.resched()
         else:
-            logging.debug('HTTPDownloader: downloading piece '+str(self.index))
+            logger.debug('HTTPDownloader: downloading piece '+str(self.index))
             (start, end, length, file) = self.downloader.storage.storage.get_file_range(self.index)
             filename = self.downloader.filenamefunc()
             if len(filename) > 0 and file.startswith(filename):
@@ -237,7 +241,7 @@
         self.error = None
         self.received_data = None
         try:
-            logging.debug('HTTPDownloader: sending request: GET '+self.url+' '+str(self.headers))
+            logger.debug('HTTPDownloader: sending request: GET '+self.url+' '+str(self.headers))
             self.connection.request('GET',self.url, None, self.headers)
             
             # Check for closed persistent connection due to server timeout
@@ -250,11 +254,11 @@
                 self.connection.request('GET',self.url, None, self.headers)
                 r = self.connection.getresponse()
                 
-            logging.debug('HTTPDownloader: got response: '+str(r.status)+', '+r.reason+', '+str(r.getheaders()))
+            logger.debug('HTTPDownloader: got response: '+str(r.status)+', '+r.reason+', '+str(r.getheaders()))
             self.connection_status = r.status
             self.received_data = r.read()
         except Exception, e:
-            logging.exception('error accessing http seed: '+str(e))
+            logger.exception('error accessing http seed: '+str(e))
             self.error = 'error accessing http seed: '+str(e)
             try:
                 self.connection.close()
@@ -478,7 +482,7 @@
         
         """
         
-        logging.info('Starting a deb_mirror downloader for: '+url)
+        logger.info('Starting a deb_mirror downloader for: '+url)
         self.downloads.append(SingleDownload(self, url))
         return self.downloads[-1]
 
@@ -502,7 +506,7 @@
         
         """
         
-        logging.info('Cancelling all HTTP downloads for pieces: '+str(pieces))
+        logger.info('Cancelling all HTTP downloads for pieces: '+str(pieces))
         for d in self.downloads:
             if d.active and d.index in pieces:
                 d.cancelled = True

Modified: debtorrent/trunk/DebTorrent/BT1/Rerequester.py
URL: http://svn.debian.org/wsvn/debtorrent/debtorrent/trunk/DebTorrent/BT1/Rerequester.py?rev=197&op=diff
==============================================================================
--- debtorrent/trunk/DebTorrent/BT1/Rerequester.py (original)
+++ debtorrent/trunk/DebTorrent/BT1/Rerequester.py Sat Aug  4 20:48:51 2007
@@ -7,6 +7,8 @@
 
 """Communicate with a tracker.
 
+ at type logger: C{logging.Logger}
+ at var logger: the logger to send all log messages to for this module
 @type mapbase64: C{string}
 @var mapbase64: the 64 characters to use for a base64 representation
 @type keys: C{dictionary}
@@ -40,6 +42,8 @@
 except:
     True = 1
     False = 0
+
+logger = logging.getLogger('DebTorrent.BT1.Rerequester')
 
 mapbase64 = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz.-'
 keys = {}
@@ -670,7 +674,7 @@
                 x = p[i]
                 peers.append(((x['ip'].strip(), x['port']),
                               x.get('peer id',0), cflags[i]))
-        logging.debug('received from tracker: '+str(peers))
+        logger.debug('received from tracker: '+str(peers))
         ps = len(peers) + self.howmany()
         if ps < self.maxpeers:
             if self.doneflag.isSet():
@@ -700,7 +704,7 @@
             if self.excfunc:
                 self.excfunc(s)
             else:
-                logging.error(s)
+                logger.error(s)
             callback()
         self.externalsched(r)
 

Modified: debtorrent/trunk/DebTorrent/BT1/Storage.py
URL: http://svn.debian.org/wsvn/debtorrent/debtorrent/trunk/DebTorrent/BT1/Storage.py?rev=197&op=diff
==============================================================================
--- debtorrent/trunk/DebTorrent/BT1/Storage.py (original)
+++ debtorrent/trunk/DebTorrent/BT1/Storage.py Sat Aug  4 20:48:51 2007
@@ -6,6 +6,8 @@
 
 """Low-level writing of files.
 
+ at type logger: C{logging.Logger}
+ at var logger: the logger to send all log messages to for this module
 @type MAXREADSIZE: C{long}
 @var MAXREADSIZE: the maximum number of bytes that can be read at a time
 @type MAXLOCKSIZE: C{long}
@@ -37,6 +39,8 @@
 except:
     True = 1
     False = 0
+
+logger = logging.getLogger('DebTorrent.BT1.Storage')
 
 MAXREADSIZE = 32768
 MAXLOCKSIZE = 1000000000L
@@ -406,7 +410,7 @@
                 assert newmtime <= oldmtime+1
                 assert newmtime >= oldmtime-1
             except:
-                logging.warning(file+' modified: '
+                logger.warning(file+' modified: '
                             +strftime('(%x %X)',localtime(self.mtimes[file]))
                             +strftime(' != (%x %X) ?',localtime(getmtime(file))))
                 raise IOError('modified during download')
@@ -414,7 +418,7 @@
             self.make_directories(file)
             return open(file, mode)
         except:
-            logging.exception('Error opening the file: '+file)
+            logger.exception('Error opening the file: '+file)
             raise
 
 
@@ -478,7 +482,7 @@
                     self.whandles[file] = 1
                     self.lock_file(file, f)
                 except (IOError, OSError), e:
-                    logging.exception('unable to reopen: '+file)
+                    logger.exception('unable to reopen: '+file)
                     raise IOError('unable to reopen '+file+': '+str(e))
 
             if self.handlebuffer:
@@ -500,7 +504,7 @@
                     if self.lock_while_reading:
                         self.lock_file(file, f)
             except (IOError, OSError), e:
-                logging.exception('unable to open: '+file)
+                logger.exception('unable to open: '+file)
                 raise IOError('unable to open '+file+': '+str(e))
             
             if self.handlebuffer is not None:
@@ -517,8 +521,8 @@
         for l in self.working_ranges:
             self.ranges.extend(l)
         self.begins = [i[0] for i in self.ranges]
-        logging.debug('file ranges: '+str(self.ranges))
-        logging.debug('file begins: '+str(self.begins))
+        logger.debug('file ranges: '+str(self.ranges))
+        logger.debug('file begins: '+str(self.begins))
 
     def get_file_range(self, index):
         """Get the file name and range that corresponds to this piece.
@@ -583,7 +587,7 @@
         
         r = PieceBuffer()
         for file, pos, end in self._intervals(pos, amount):
-            logging.debug('reading '+file+' from '+str(pos)+' to '+str(end))
+            logger.debug('reading '+file+' from '+str(pos)+' to '+str(end))
             self.lock.acquire()
             h = self._get_file_handle(file, False)
             if flush_first and self.whandles.has_key(file):
@@ -613,7 +617,7 @@
         # might raise an IOError
         total = 0
         for file, begin, end in self._intervals(pos, len(s)):
-            logging.debug('writing '+file+' from '+str(pos)+' to '+str(end))
+            logger.debug('writing '+file+' from '+str(pos)+' to '+str(end))
             self.lock.acquire()
             h = self._get_file_handle(file, True)
             h.seek(begin)
@@ -698,9 +702,9 @@
             return r
         start, end, offset, file = self.file_ranges[f]
         start_piece, end_piece = self.file_pieces[f]
-        logging.debug('calculating disabled range for '+self.files[f][0])
-        logging.debug('bytes: '+str(start)+'-'+str(end))
-        logging.debug('file spans pieces '+str(start_piece)+'-'+str(end_piece))
+        logger.debug('calculating disabled range for '+self.files[f][0])
+        logger.debug('bytes: '+str(start)+'-'+str(end))
+        logger.debug('file spans pieces '+str(start_piece)+'-'+str(end_piece))
         pieces = range(start_piece, end_piece+1)
         offset = 0
         disabled_files = []
@@ -708,8 +712,8 @@
         working_range = [(start, end, offset, file)]
         update_pieces = []
 
-        logging.debug('working range: '+str(working_range))
-        logging.debug('update pieces: '+str(update_pieces))
+        logger.debug('working range: '+str(working_range))
+        logger.debug('update pieces: '+str(update_pieces))
         r = (tuple(working_range), tuple(update_pieces), tuple(disabled_files))
         self.disabled_ranges[f] = r
         return r
@@ -735,7 +739,7 @@
         
         if not self.disabled[f]:
             return
-        logging.info('enabling file '+self.files[f][0])
+        logger.info('enabling file '+self.files[f][0])
         self.disabled[f] = False
         r = self.file_ranges[f]
         if not r:
@@ -761,7 +765,7 @@
         """
         if self.disabled[f]:
             return
-        logging.info('disabling file '+self.files[f][0])
+        logger.info('disabling file '+self.files[f][0])
         self.disabled[f] = True
         r = self._get_disabled_ranges(f)
         if not r:
@@ -883,11 +887,11 @@
                     continue
                 start, end, offset, file =r
                 start_piece, end_piece = self.file_pieces[i]
-                logging.debug('adding '+file)
+                logger.debug('adding '+file)
                 for p in xrange(start_piece, end_piece+1):
                     valid_pieces[p] = 1
 
-            logging.info('Saved list of valid pieces: '+str(valid_pieces.keys()))
+            logger.info('Saved list of valid pieces: '+str(valid_pieces.keys()))
             
             def test(old, size, mtime):
                 """Test that the file has not changed since the status save.                
@@ -923,14 +927,14 @@
                      or not test(files[i],getsize(file),getmtime(file)) ):
                     start, end, offset, file = self.file_ranges[i]
                     start_piece, end_piece = self.file_pieces[i]
-                    logging.debug('removing '+file)
+                    logger.debug('removing '+file)
                     for p in xrange(start_piece, end_piece+1):
                         if valid_pieces.has_key(p):
                             del valid_pieces[p]
         except:
-            logging.exception('Error unpickling data cache')
+            logger.exception('Error unpickling data cache')
             return []
 
-        logging.info('Final list of valid pieces: '+str(valid_pieces.keys()))
+        logger.info('Final list of valid pieces: '+str(valid_pieces.keys()))
         return valid_pieces.keys()
 

Modified: debtorrent/trunk/DebTorrent/BT1/StorageWrapper.py
URL: http://svn.debian.org/wsvn/debtorrent/debtorrent/trunk/DebTorrent/BT1/StorageWrapper.py?rev=197&op=diff
==============================================================================
--- debtorrent/trunk/DebTorrent/BT1/StorageWrapper.py (original)
+++ debtorrent/trunk/DebTorrent/BT1/StorageWrapper.py Sat Aug  4 20:48:51 2007
@@ -6,6 +6,8 @@
 
 """Manage the storage of data at the piece level.
 
+ at type logger: C{logging.Logger}
+ at var logger: the logger to send all log messages to for this module
 @type STATS_INTERVAL: C{float}
 @var STATS_INTERVAL: how often to print a status update during an old-style init
 
@@ -27,6 +29,8 @@
     def insort(l, item):
         l.append(item)
         l.sort()
+
+logger = logging.getLogger('DebTorrent.BT1.StorageWrapper')
 
 STATS_INTERVAL = 0.2
 
@@ -475,7 +479,7 @@
                     x = next()
 
         self.statusfunc(fractionDone = 0)
-        logging.info('StorageWrapper old_style_init complete')
+        logger.info('StorageWrapper old_style_init complete')
         return True
 
 
@@ -513,7 +517,7 @@
         else:
             if not self.initialize_tasks:
                 self.initialize_done()
-                logging.info('StorageWrapper initialize complete')
+                logger.info('StorageWrapper initialize complete')
                 return
             msg, done, init, next = self.initialize_tasks.pop(0)
             if init():
@@ -584,7 +588,7 @@
         
         """
         
-        logging.debug(str(piece)+' at '+str(pos))
+        logger.debug(str(piece)+' at '+str(pos))
         self.places[piece] = pos
         self.have[piece] = True
         len = self._piecelen(piece)
@@ -1160,7 +1164,7 @@
         """
         
         oldpos = self.places[index]
-        logging.debug('moving '+str(index)+' from '+str(oldpos)+' to '+str(newpos))
+        logger.debug('moving '+str(index)+' from '+str(oldpos)+' to '+str(newpos))
         assert oldpos != index
         assert oldpos != newpos
         assert index == newpos or not self.places.has_key(newpos)
@@ -1280,7 +1284,7 @@
         if not self.places.has_key(index):
             while self._clear_space(index):
                 pass
-            logging.debug('new place for '+str(index)+' at '+str(self.places[index]))
+            logger.debug('new place for '+str(index)+' at '+str(self.places[index]))
         if self.flag.isSet():
             return
 
@@ -1749,7 +1753,7 @@
 
             assert amount_obtained + amount_inactive == self.amount_desired
         except:
-            logging.exception('Error unpickling data cache')
+            logger.exception('Error unpickling data cache')
             return []   # invalid data, discard everything
 
         self.have = have

Modified: debtorrent/trunk/DebTorrent/BT1/StreamCheck.py
URL: http://svn.debian.org/wsvn/debtorrent/debtorrent/trunk/DebTorrent/BT1/StreamCheck.py?rev=197&op=diff
==============================================================================
--- debtorrent/trunk/DebTorrent/BT1/StreamCheck.py (original)
+++ debtorrent/trunk/DebTorrent/BT1/StreamCheck.py Sat Aug  4 20:48:51 2007
@@ -4,7 +4,12 @@
 
 # $Id$
 
-"""Not used."""
+"""Not used.
+
+ at type logger: C{logging.Logger}
+ at var logger: the logger to send all log messages to for this module
+
+"""
 
 from cStringIO import StringIO
 from binascii import b2a_hex
@@ -18,6 +23,8 @@
 except:
     True = 1
     False = 0
+
+logger = logging.getLogger('DebTorrent.BT1.StreamCheck')
 
 option_pattern = chr(0)*8
 
@@ -64,29 +71,29 @@
 
     def read_header_len(self, s):
         if ord(s) != len(protocol_name):
-            logging.warn(str(self.no)+' BAD HEADER LENGTH')
+            logger.warn(str(self.no)+' BAD HEADER LENGTH')
         return len(protocol_name), self.read_header
 
     def read_header(self, s):
         if s != protocol_name:
-            logging.warn(str(self.no)+' BAD HEADER')
+            logger.warn(str(self.no)+' BAD HEADER')
         return 8, self.read_reserved
 
     def read_reserved(self, s):
         return 20, self.read_download_id
 
     def read_download_id(self, s):
-        logging.debug(str(self.no)+' download ID ' + tohex(s))
+        logger.debug(str(self.no)+' download ID ' + tohex(s))
         return 20, self.read_peer_id
 
     def read_peer_id(self, s):
-        logging.debug(str(self.no)+' peer ID' + make_readable(s))
+        logger.debug(str(self.no)+' peer ID' + make_readable(s))
         return 4, self.read_len
 
     def read_len(self, s):
         l = toint(s)
         if l > 2 ** 23:
-            logging.warn(str(self.no)+' BAD LENGTH: '+str(l)+' ('+s+')')
+            logger.warn(str(self.no)+' BAD LENGTH: '+str(l)+' ('+s+')')
         return l, self.read_message
 
     def read_message(self, s):
@@ -94,30 +101,30 @@
             return 4, self.read_len
         m = s[0]
         if ord(m) > 8:
-            logging.warn(str(self.no)+' BAD MESSAGE: '+str(ord(m)))
+            logger.warn(str(self.no)+' BAD MESSAGE: '+str(ord(m)))
         if m == Connecter.REQUEST:
             if len(s) != 13:
-                logging.warn(str(self.no)+' BAD REQUEST SIZE: '+str(len(s)))
+                logger.warn(str(self.no)+' BAD REQUEST SIZE: '+str(len(s)))
                 return 4, self.read_len
             index = toint(s[1:5])
             begin = toint(s[5:9])
             length = toint(s[9:])
-            logging.info(str(self.no)+' Request: '+str(index)+': '+str(begin)+'-'+str(begin)+'+'+str(length))
+            logger.info(str(self.no)+' Request: '+str(index)+': '+str(begin)+'-'+str(begin)+'+'+str(length))
         elif m == Connecter.CANCEL:
             if len(s) != 13:
-                logging.warn(str(self.no)+' BAD CANCEL SIZE: '+str(len(s)))
+                logger.warn(str(self.no)+' BAD CANCEL SIZE: '+str(len(s)))
                 return 4, self.read_len
             index = toint(s[1:5])
             begin = toint(s[5:9])
             length = toint(s[9:])
-            logging.info(str(self.no)+' Cancel: '+str(index)+': '+str(begin)+'-'+str(begin)+'+'+str(length))
+            logger.info(str(self.no)+' Cancel: '+str(index)+': '+str(begin)+'-'+str(begin)+'+'+str(length))
         elif m == Connecter.PIECE:
             index = toint(s[1:5])
             begin = toint(s[5:9])
             length = len(s)-9
-            logging.info(str(self.no)+' Piece: '+str(index)+': '+str(begin)+'-'+str(begin)+'+'+str(length))
+            logger.info(str(self.no)+' Piece: '+str(index)+': '+str(begin)+'-'+str(begin)+'+'+str(length))
         else:
-            logging.info(str(self.no)+' Message '+str(ord(m))+' (length '+str(len(s))+')')
+            logger.info(str(self.no)+' Message '+str(ord(m))+' (length '+str(len(s))+')')
         return 4, self.read_len
 
     def write(self, s):

Modified: debtorrent/trunk/DebTorrent/BT1/T2T.py
URL: http://svn.debian.org/wsvn/debtorrent/debtorrent/trunk/DebTorrent/BT1/T2T.py?rev=197&op=diff
==============================================================================
--- debtorrent/trunk/DebTorrent/BT1/T2T.py (original)
+++ debtorrent/trunk/DebTorrent/BT1/T2T.py Sat Aug  4 20:48:51 2007
@@ -6,6 +6,8 @@
 
 """Tracker to tracker connection management.
 
+ at type logger: C{logging.Logger}
+ at var logger: the logger to send all log messages to for this module
 @type R_0: C{function}
 @var R_0: a function that always returns 0
 @type R_1: C{function}
@@ -26,6 +28,7 @@
     True = 1
     False = 0
 
+logger = logging.getLogger('DebTorrent.BT1.T2T')
 
 def excfunc(x):
     """Log an exception that occurred.
@@ -35,7 +38,7 @@
     
     """
     
-    logging.error(x)
+    logger.error(x)
 
 R_0 = lambda: 0
 R_1 = lambda: 1
@@ -160,7 +163,7 @@
             return
         self.lastsuccessful = True
         self.newpeerdata = []
-        logging.info('contacting '+self.tracker+' for info_hash='+quote(self.hash))
+        logger.info('contacting '+self.tracker+' for info_hash='+quote(self.hash))
         self.rerequester.snoop(self.peers, self.callback)
 
     def callback(self):
@@ -173,7 +176,7 @@
                 # I think I'm stripping from a regular tracker; boost the number of peers requested
                 self.peers = int(self.peers * (self.rerequester.announce_interval / self.interval))
             self.operatinginterval = self.rerequester.announce_interval
-            logging.info(self.tracker+' with info_hash='+quote(self.hash)+' returned '+str(len(self.newpeerdata))+' peers')
+            logger.info(self.tracker+' with info_hash='+quote(self.hash)+' returned '+str(len(self.newpeerdata))+' peers')
             self.peerlists.append(self.newpeerdata)
             self.peerlists = self.peerlists[-10:]  # keep up to the last 10 announces
         if self.isactive():
@@ -199,22 +202,22 @@
         """
         
         self.lastsuccessful = False
-        logging.info(self.tracker+' with info_hash='+quote(self.hash)+' gives error: "'+r+'"')
+        logger.info(self.tracker+' with info_hash='+quote(self.hash)+' gives error: "'+r+'"')
         if r == self.rerequester.rejectedmessage + 'disallowed':   # whoops!
-            logging.info(' -- disallowed - deactivating')
+            logger.info(' -- disallowed - deactivating')
             self.deactivate()
             self.disallow(self.tracker)   # signal other torrents on this tracker
             return
         if lower(r[:8]) == 'rejected': # tracker rejected this particular torrent
             self.rejected += 1
             if self.rejected == 3:     # rejected 3 times
-                logging.info(' -- rejected 3 times - deactivating')
+                logger.info(' -- rejected 3 times - deactivating')
                 self.deactivate()
             return
         self.errors += 1
         if self.errors >= 3:                         # three or more errors in a row
             self.operatinginterval += self.interval  # lengthen the interval
-            logging.info(' -- lengthening interval to '+str(self.operatinginterval)+' seconds')
+            logger.info(' -- lengthening interval to '+str(self.operatinginterval)+' seconds')
 
     def harvest(self):
         """Retrieve the saved list of peers from this tracker connection.

Modified: debtorrent/trunk/DebTorrent/BT1/makemetafile.py
URL: http://svn.debian.org/wsvn/debtorrent/debtorrent/trunk/DebTorrent/BT1/makemetafile.py?rev=197&op=diff
==============================================================================
--- debtorrent/trunk/DebTorrent/BT1/makemetafile.py (original)
+++ debtorrent/trunk/DebTorrent/BT1/makemetafile.py Sat Aug  4 20:48:51 2007
@@ -7,6 +7,8 @@
 
 """Create a torrent file or data structure.
 
+ at type logger: C{logging.Logger}
+ at var logger: the logger to send all log messages to for this module
 @type defaults: C{list} of (C{string}, unknown, C{string})
 @var defaults: the default configuration variables, including descriptions
 @type default_piece_len_exp: C{int}
@@ -37,6 +39,8 @@
 except:
     from sys import getdefaultencoding
     ENCODING = getdefaultencoding()
+
+logger = logging.getLogger('DebTorrent.BT1.makemetafile')
 
 defaults = [
     ('announce_list', '',
@@ -454,7 +458,7 @@
 
     sub_pieces = getsubpieces(file, pieces_file)
 
-    logging.warning('WARNING: Pieces file could not be found, not using sub-package pieces.')
+    logger.warning('WARNING: Pieces file could not be found, not using sub-package pieces.')
         
     file = abspath(file)
     f = open(file)

Modified: debtorrent/trunk/DebTorrent/BT1/track.py
URL: http://svn.debian.org/wsvn/debtorrent/debtorrent/trunk/DebTorrent/BT1/track.py?rev=197&op=diff
==============================================================================
--- debtorrent/trunk/DebTorrent/BT1/track.py (original)
+++ debtorrent/trunk/DebTorrent/BT1/track.py Sat Aug  4 20:48:51 2007
@@ -6,6 +6,8 @@
 
 """Tools to track a download swarm.
 
+ at type logger: C{logging.Logger}
+ at var logger: the logger to send all log messages to for this module
 @type defaults: C{list} of (C{string}, unknown, C{string})
 @var defaults: the parameter names, default values, and descriptions
 @type alas: C{string}
@@ -55,6 +57,8 @@
     True = 1
     False = 0
     bool = lambda x: not not x
+
+logger = logging.getLogger('DebTorrent.BT1.track')
 
 defaults = [
     ('port', 80, "Port to listen on."),
@@ -409,7 +413,7 @@
                 self.favicon = h.read()
                 h.close()
             except:
-                logging.warning("specified favicon file does not exist.")
+                logger.warning("specified favicon file does not exist.")
         self.rawserver = rawserver
         self.cached = {}    # format: infohash: [[time1, l1, s1], [time2, l2, s2], ...]
         self.cached_t = {}  # format: infohash: [time, cache]
@@ -429,7 +433,7 @@
             self.only_local_override_ip = not config['nat_check']
 
         if CHECK_PEER_ID_ENCRYPTED and not CRYPTO_OK:
-            logging.warning('crypto library not installed,' +
+            logger.warning('crypto library not installed,' +
                    ' cannot completely verify encrypted peers')
 
         tempstate = configdir.getState()
@@ -439,9 +443,9 @@
                     tempstate = {'peers': tempstate}
                 statefiletemplate(tempstate)
                 self.state = tempstate
-                logging.info('successfully loaded the previous state file')
+                logger.info('successfully loaded the previous state file')
             except:
-                logging.warning('statefile corrupt; resetting')
+                logger.warning('statefile corrupt; resetting')
         self.downloads = self.state.setdefault('peers', {})
         self.completed = self.state.setdefault('completed', {})
 
@@ -495,7 +499,7 @@
 
         if config['allowed_list']:
             if config['allowed_dir']:
-                logging.warning('allowed_dir and allowed_list options cannot be used together,'+
+                logger.warning('allowed_dir and allowed_list options cannot be used together,'+
                                 ' disregarding allowed_dir')
                 config['allowed_dir'] = ''
             self.allowed = self.state.setdefault('allowed_list',{})
@@ -688,7 +692,7 @@
                 '</html>\n')
             return (200, 'OK', {'Content-Type': 'text/html; charset=iso-8859-1'}, s.getvalue())
         except:
-            logging.exception('Error generating info page')
+            logger.exception('Error generating info page')
             return (500, 'Internal Server Error', {'Content-Type': 'text/html; charset=iso-8859-1'}, 'Server Error')
 
 
@@ -1323,14 +1327,14 @@
         if ( record is None 
                  or (record['ip'] != ip and record.get('given ip') != ip)
                  or record['port'] != port ):
-            logging.info('natcheck on '+ip+' ('+quote(peerid)+'), '+str(port)+': '+str(404))
+            logger.info('natcheck on '+ip+' ('+quote(peerid)+'), '+str(port)+': '+str(404))
             return
         if self.config['log_nat_checks']:
             if result:
                 x = 200
             else:
                 x = 503
-            logging.info('natcheck on '+ip+' ('+quote(peerid)+'), '+str(port)+': '+str(x))
+            logger.info('natcheck on '+ip+' ('+quote(peerid)+'), '+str(port)+': '+str(x))
         if not record.has_key('nat'):
             record['nat'] = int(not result)
             if result:
@@ -1381,7 +1385,7 @@
                 (self.allowed, added, garbage2) = r
                 self.state['allowed_list'] = self.allowed
             except (IOError, OSError):
-                logging.warning('unable to read allowed torrent list')
+                logger.warning('unable to read allowed torrent list')
                 return
             self.allowed_list_mtime = os.path.getmtime(f)
 
@@ -1402,7 +1406,7 @@
                 self.allowed_IPs.read_fieldlist(f)
                 self.allowed_ip_mtime = os.path.getmtime(f)
             except (IOError, OSError):
-                logging.warning('unable to read allowed_IP list')
+                logger.warning('unable to read allowed_IP list')
                 
         f = self.config['banned_ips']
         if f and self.banned_ip_mtime != os.path.getmtime(f):
@@ -1411,7 +1415,7 @@
                 self.banned_IPs.read_rangelist(f)
                 self.banned_ip_mtime = os.path.getmtime(f)
             except (IOError, OSError):
-                logging.warning('unable to read banned_IP list')
+                logger.warning('unable to read banned_IP list')
                 
 
     def delete_peer(self, infohash, peerid):
@@ -1483,20 +1487,20 @@
 
         # Create the root handler (removing any others)
         hdlr = logging.FileHandler(outfilename, 'a')
-        hdlr.setFormatter(logging.Formatter('%(asctime)s %(threadName)s %(levelname)s %(module)s %(name)s %(message)s'))
+        hdlr.setFormatter(logging.Formatter('%(asctime)s %(threadName)s %(name)s %(levelname)s %(message)s'))
         for h in logging.root.handlers:
             logging.root.removeHandler(h)
         logging.root.addHandler(hdlr)
         logging.root.setLevel(config['log_level'])
-        logging.info('Logging begins')
+        logger.info('Logging begins')
         
         # Continue
         if config['save_options']:
             configdir.saveConfig(config)
     except ValueError, e:
-        logging.error('error: ' + str(e))
-        logging.error("Usage: debtorrent-tracker.py <global options>")
-        logging.error(formatDefinitions(defaults, 80))
+        logger.error('error: ' + str(e))
+        logger.error("Usage: debtorrent-tracker.py <global options>")
+        logger.error(formatDefinitions(defaults, 80))
         logging.shutdown()
         sys.exit(1)
 
@@ -1512,7 +1516,7 @@
                                  logfile, config['hupmonitor']))
     
     t.save_state()
-    logging.info('Shutting down')
+    logger.info('Shutting down')
     logging.shutdown()
 
 def size_format(s):

Modified: debtorrent/trunk/DebTorrent/HTTPCache.py
URL: http://svn.debian.org/wsvn/debtorrent/debtorrent/trunk/DebTorrent/HTTPCache.py?rev=197&op=diff
==============================================================================
--- debtorrent/trunk/DebTorrent/HTTPCache.py (original)
+++ debtorrent/trunk/DebTorrent/HTTPCache.py Sat Aug  4 20:48:51 2007
@@ -5,6 +5,10 @@
 
 """Manage an HTTP download cache.
 
+ at type logger: C{logging.Logger}
+ at var logger: the logger to send all log messages to for this module
+ at type time_format: C{string}
+ at var time_format: the format to use for reading/writing HTTP server times
 @type VERSION: C{string}
 @var VERSION: the UserAgent identifier sent to all sites
 @type alas: C{string}
@@ -25,6 +29,8 @@
 except:
     True = 1
     False = 0
+
+logger = logging.getLogger('DebTorrent.HTTPCache')
 
 time_format = '%a, %d %b %Y %H:%M:%S'
 VERSION = product_name+'/'+version_short
@@ -79,12 +85,12 @@
         try:
             self.connection = HTTPConnection(self.server)
         except:
-            logging.error('cannot connect to http seed: '+self.server)
+            logger.error('cannot connect to http seed: '+self.server)
             return
         
         self.headers = {'User-Agent': VERSION}
         self.active = False
-        logging.info('CacheRequest: downloading '+self.url)
+        logger.info('CacheRequest: downloading '+self.url)
         rq = Thread(target = self._request, name = 'HTTPCache.CacheRequest._request')
         rq.setDaemon(False)
         rq.start()
@@ -97,18 +103,18 @@
         import encodings.idna
         
         try:
-            logging.debug('CacheRequest: sending request GET '+self.url+', '+str(self.headers))
+            logger.debug('CacheRequest: sending request GET '+self.url+', '+str(self.headers))
             self.connection.request('GET',self.url, None, self.headers)
             
             r = self.connection.getresponse()
                 
-            logging.debug('CacheRequest: got response '+str(r.status)+', '+r.reason+', '+str(r.getheaders()))
+            logger.debug('CacheRequest: got response '+str(r.status)+', '+r.reason+', '+str(r.getheaders()))
             self.connection_status = r.status
             self.connection_response = r.reason
             self.headers = dict(r.getheaders())
             self.received_data = r.read()
         except Exception, e:
-            logging.exception('error accessing http server')
+            logger.exception('error accessing http server')
             self.connection_status = 500
             self.connection_response = 'Internal Server Error'
             self.headers = {}
@@ -160,7 +166,7 @@
         
         """
         
-        logging.info('Starting a HttpCache downloader for: http://'+'/'.join(path))
+        logger.info('Starting a HttpCache downloader for: http://'+'/'.join(path))
         self.downloads.append(CacheRequest(self, path, func))
 
     def download_complete(self, d, path, func, r):
@@ -181,7 +187,7 @@
         
         """
         
-        logging.info('HttpCache download completed for: http://'+'/'.join(path))
+        logger.info('HttpCache download completed for: http://'+'/'.join(path))
         self.downloads.remove(d)
 
         if r[0] in (200, 206):

Modified: debtorrent/trunk/DebTorrent/HTTPHandler.py
URL: http://svn.debian.org/wsvn/debtorrent/debtorrent/trunk/DebTorrent/HTTPHandler.py?rev=197&op=diff
==============================================================================
--- debtorrent/trunk/DebTorrent/HTTPHandler.py (original)
+++ debtorrent/trunk/DebTorrent/HTTPHandler.py Sat Aug  4 20:48:51 2007
@@ -6,6 +6,8 @@
 
 """Handles incoming HTTP connections from other clients to this server.
 
+ at type logger: C{logging.Logger}
+ at var logger: the logger to send all log messages to for this module
 @type weekdays: C{list} of C{string}
 @var weekdays: the days of the week
 @type months: C{list} of C{string}
@@ -24,6 +26,8 @@
 except:
     True = 1
     False = 0
+
+logger = logging.getLogger('DebTorrent.HTTPHandler')
 
 weekdays = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
 
@@ -187,7 +191,7 @@
         except ValueError:
             return None
         self.headers[data[:i].strip().lower()] = data[i+1:].strip()
-        logging.debug(data[:i].strip() + ": " + data[i+1:].strip())
+        logger.debug(data[:i].strip() + ": " + data[i+1:].strip())
         return self.read_header
 
     def answer(self, (responsecode, responsestring, headers, data)):
@@ -215,7 +219,7 @@
             if len(cdata) >= len(data):
                 self.encoding = 'identity'
             else:
-                logging.debug('Compressed: '+str(len(cdata))+'  Uncompressed: '+str(len(data)))
+                logger.debug('Compressed: '+str(len(cdata))+'  Uncompressed: '+str(len(data)))
                 data = cdata
                 headers['Content-Encoding'] = 'gzip'
 
@@ -290,7 +294,7 @@
                 self.log = open(self.logfile,'a')
                 print >> self.log, "# Log Started: ", isotime()
             except:
-                logging.exception('could not open log file')
+                logger.exception('could not open log file')
             else:
                 if hupmonitor:
                     def huphandler(signum, frame, self = self):
@@ -299,7 +303,7 @@
                             self.log = open(self.logfile,'a')
                             print >> self.log, "# Log reopened: ", isotime()
                         except:
-                            logging.exception('could not reopen log file')
+                            logger.exception('could not reopen log file')
                      
                     signal.signal(signal.SIGHUP, huphandler)            
 

Modified: debtorrent/trunk/DebTorrent/RateLimiter.py
URL: http://svn.debian.org/wsvn/debtorrent/debtorrent/trunk/DebTorrent/RateLimiter.py?rev=197&op=diff
==============================================================================
--- debtorrent/trunk/DebTorrent/RateLimiter.py (original)
+++ debtorrent/trunk/DebTorrent/RateLimiter.py Sat Aug  4 20:48:51 2007
@@ -8,6 +8,8 @@
 
 All the constants below are only for the automatic upload rate adjustment.
 
+ at type logger: C{logging.Logger}
+ at var logger: the logger to send all log messages to for this module
 @type MAX_RATE_PERIOD: C{float}
 @var MAX_RATE_PERIOD: maximum amount of time to guess the current rate 
     estimate represents
@@ -59,6 +61,8 @@
     sum([1])
 except:
     sum = lambda a: reduce(lambda x,y: x+y, a, 0)
+
+logger = logging.getLogger('DebTorrent.RateLimiter')
 
 MAX_RATE_PERIOD = 20.0
 MAX_RATE = 10e10
@@ -239,13 +243,13 @@
         
         """
         
-        logging.debug('ping delay: '+str(delay))
+        logger.debug('ping delay: '+str(delay))
         if not self.autoadjust:
             return
         self.pings.append(delay > PING_BOUNDARY)
         if len(self.pings) < PING_SAMPLES+PING_DISCARDS:
             return
-        logging.debug('cycle')
+        logger.debug('cycle')
         pings = sum(self.pings[PING_DISCARDS:])
         del self.pings[:]
         if pings >= PING_THRESHHOLD:   # assume flooded
@@ -257,7 +261,7 @@
             self.upload_rate = max(int(self.upload_rate*ADJUST_DOWN),2)
             self.slots = int(sqrt(self.upload_rate*SLOTS_FACTOR))
             self.slotsfunc(self.slots)
-            logging.debug('adjust down to '+str(self.upload_rate))
+            logger.debug('adjust down to '+str(self.upload_rate))
             self.lasttime = clock()
             self.bytes_sent = 0
             self.autoadjustup = UP_DELAY_FIRST
@@ -270,7 +274,7 @@
             self.upload_rate = int(self.upload_rate*ADJUST_UP)
             self.slots = int(sqrt(self.upload_rate*SLOTS_FACTOR))
             self.slotsfunc(self.slots)
-            logging.debug('adjust up to '+str(self.upload_rate))
+            logger.debug('adjust up to '+str(self.upload_rate))
             self.lasttime = clock()
             self.bytes_sent = 0
             self.autoadjustup = UP_DELAY_NEXT

Modified: debtorrent/trunk/DebTorrent/RawServer.py
URL: http://svn.debian.org/wsvn/debtorrent/debtorrent/trunk/DebTorrent/RawServer.py?rev=197&op=diff
==============================================================================
--- debtorrent/trunk/DebTorrent/RawServer.py (original)
+++ debtorrent/trunk/DebTorrent/RawServer.py Sat Aug  4 20:48:51 2007
@@ -6,6 +6,8 @@
 
 """Manage connections to and tasks to be run on the server.
 
+ at type logger: C{logging.Logger}
+ at var logger: the logger to send all log messages to for this module
 @type READSIZE: C{int}
 @var READSIZE: the maximum amount of data to read from any sockets
 
@@ -28,6 +30,7 @@
     True = 1
     False = 0
 
+logger = logging.getLogger('DebTorrent.RawServer')
 
 def autodetect_ipv6():
     """Detect whether IPv6 connections are supported (not used)."""
@@ -310,7 +313,7 @@
         
         """
         
-        logging.info("Received signal: "+str(signalnum))
+        logger.info("Received signal: "+str(signalnum))
         raise KeyboardInterrupt
 
     def listen_forever(self, handler):
@@ -342,7 +345,7 @@
                         if id in self.tasks_to_kill:
                             pass
                         try:
-#                            logging.debug(func.func_name)
+#                            logger.debug(func.func_name)
                             func()
                         except (SystemError, MemoryError), e:
                             self.failfunc(str(e))
@@ -424,7 +427,7 @@
             self.excflag.set()
         self.exccount += 1
         if self.errorfunc is None:
-            logging.exception('RawServer exception occurred')
+            logger.exception('RawServer exception occurred')
         else:
             data = StringIO()
             print_exc(file = data)

Modified: debtorrent/trunk/DebTorrent/SocketHandler.py
URL: http://svn.debian.org/wsvn/debtorrent/debtorrent/trunk/DebTorrent/SocketHandler.py?rev=197&op=diff
==============================================================================
--- debtorrent/trunk/DebTorrent/SocketHandler.py (original)
+++ debtorrent/trunk/DebTorrent/SocketHandler.py Sat Aug  4 20:48:51 2007
@@ -6,6 +6,8 @@
 
 """Handle all sockets.
 
+ at type logger: C{logging.Logger}
+ at var logger: the logger to send all log messages to for this module
 @type all: C{int}
 @var all: all events to check for, both input and output
 
@@ -30,6 +32,8 @@
 except:
     True = 1
     False = 0
+
+logger = logging.getLogger('DebTorrent.SocketHandler')
 
 all = POLLIN | POLLOUT
 
@@ -511,7 +515,7 @@
                     self.poll.unregister(s)
                     s.close()
                     del self.servers[sock]
-                    logging.error("lost server socket")
+                    logger.error("lost server socket")
                 elif len(self.single_sockets) < self.max_connects:
                     try:
                         port = s.getsockname()[1]

Modified: debtorrent/trunk/DebTorrent/bencode.py
URL: http://svn.debian.org/wsvn/debtorrent/debtorrent/trunk/DebTorrent/bencode.py?rev=197&op=diff
==============================================================================
--- debtorrent/trunk/DebTorrent/bencode.py (original)
+++ debtorrent/trunk/DebTorrent/bencode.py Sat Aug  4 20:48:51 2007
@@ -6,6 +6,8 @@
 
 """Functions for bencoding and bdecoding data.
 
+ at type logger: C{logging.Logger}
+ at var logger: the logger to send all log messages to for this module
 @type decode_func: C{dictionary} of C{function}
 @var decode_func: a dictionary of function calls to be made, based on data,
     the keys are the first character of the data and the value is the
@@ -31,6 +33,8 @@
 except ImportError:
     UnicodeType = None
 from cStringIO import StringIO
+
+logger = logging.getLogger('DebTorrent.bencode')
 
 def decode_int(x, f):
     """Bdecode an integer.
@@ -472,7 +476,7 @@
     try:
         encode_func[type(x)](x, r)
     except:
-        logging.error('could not encode type '+str(type(x))+' (value: '+str(x)+')')
+        logger.error('could not encode type '+str(type(x))+' (value: '+str(x)+')')
         assert 0
     return ''.join(r)
 

Modified: debtorrent/trunk/DebTorrent/inifile.py
URL: http://svn.debian.org/wsvn/debtorrent/debtorrent/trunk/DebTorrent/inifile.py?rev=197&op=diff
==============================================================================
--- debtorrent/trunk/DebTorrent/inifile.py (original)
+++ debtorrent/trunk/DebTorrent/inifile.py Sat Aug  4 20:48:51 2007
@@ -4,7 +4,7 @@
 
 # $Id$
 
-'''Functions to read/write a Windows-style INI file
+"""Functions to read/write a Windows-style INI file
 
 format::
 
@@ -28,7 +28,10 @@
 Booleans are written as integers.  Anything other than strings, integers, 
 and floats may have unpredictable results.
 
-'''
+ at type logger: C{logging.Logger}
+ at var logger: the logger to send all log messages to for this module
+
+"""
 
 from cStringIO import StringIO
 from types import DictType, StringType
@@ -43,6 +46,8 @@
 except:
     True = 1
     False = 0
+
+logger = logging.getLogger('DebTorrent.inifile')
 
 def ini_write(f, d, comment=''):
     """Write the ini file.
@@ -65,7 +70,7 @@
             assert type(k) == StringType
             k = k.lower()
             if type(v) == DictType:
-                logging.debug('new section:' +k)
+                logger.debug('new section:' +k)
                 if k:
                     assert not a.has_key(k)
                     a[k] = {}
@@ -79,7 +84,7 @@
                     if type(vv) == StringType:
                         vv = '"'+vv+'"'
                     aa[kk] = str(vv)
-                    logging.debug('a['+k+']['+kk+'] = '+str(vv))
+                    logger.debug('a['+k+']['+kk+'] = '+str(vv))
             else:
                 aa = a['']
                 assert not aa.has_key(k)
@@ -88,7 +93,7 @@
                 if type(v) == StringType:
                     v = '"'+v+'"'
                 aa[k] = str(v)
-                logging.debug('a[\'\']['+k+'] = '+str(v))
+                logger.debug('a[\'\']['+k+'] = '+str(v))
         r = open(f,'w')
         if comment:
             for c in comment.split('\n'):
@@ -106,7 +111,7 @@
                 r.write(kk+' = '+aa[kk]+'\n')
         success = True
     except:
-        logging.exception('Error writing config file: '+f)
+        logger.exception('Error writing config file: '+f)
         success = False
     try:
         r.close()
@@ -127,7 +132,7 @@
     
     """
     
-    logging.error('('+str(lineno)+') '+err+': '+line)
+    logger.error('('+str(lineno)+') '+err+': '+line)
 
 def ini_read(f, errfunc = errfunc):
     """Read the ini file.
@@ -188,9 +193,9 @@
                 errfunc(i,l,'duplicate entry')
                 continue
             d[k] = v
-        logging.debug(str(dd))
-    except:
-        logging.exception('Error reading config file: '+f)
+        logger.debug(str(dd))
+    except:
+        logger.exception('Error reading config file: '+f)
         dd = None
     try:
         r.close()

Modified: debtorrent/trunk/DebTorrent/iprangeparse.py
URL: http://svn.debian.org/wsvn/debtorrent/debtorrent/trunk/DebTorrent/iprangeparse.py?rev=197&op=diff
==============================================================================
--- debtorrent/trunk/DebTorrent/iprangeparse.py (original)
+++ debtorrent/trunk/DebTorrent/iprangeparse.py Sat Aug  4 20:48:51 2007
@@ -6,6 +6,8 @@
 
 """Deal with all types of IP addresses and IP address ranges.
 
+ at type logger: C{logging.Logger}
+ at var logger: the logger to send all log messages to for this module
 @type ipv4addrmask: C{long}
 @var ipv4addrmask: the address mask used to determine if the IP address 
     in C{long} format is v4 encapsulated in a v6 address
@@ -22,6 +24,7 @@
     False = 0
     bool = lambda x: not not x
 
+logger = logging.getLogger('DebTorrent.iprangeparse')
 
 def to_long_ipv4(ip):
     """Convert an IP address from a string to a long.
@@ -341,7 +344,7 @@
                 ip2 = to_long_ipv4(ip2)
                 assert ip1 <= ip2
             except:
-                logging.warning('could not parse IP range: '+line)
+                logger.warning('could not parse IP range: '+line)
             l.append((ip1,ip2))
         f.close()
         self._import_ipv4(l)

Modified: debtorrent/trunk/DebTorrent/launchmanycore.py
URL: http://svn.debian.org/wsvn/debtorrent/debtorrent/trunk/DebTorrent/launchmanycore.py?rev=197&op=diff
==============================================================================
--- debtorrent/trunk/DebTorrent/launchmanycore.py (original)
+++ debtorrent/trunk/DebTorrent/launchmanycore.py Sat Aug  4 20:48:51 2007
@@ -4,7 +4,12 @@
 #
 # $Id$
 
-"""Manage the downloading of multiple torrents in one process."""
+"""Manage the downloading of multiple torrents in one process.
+
+ at type logger: C{logging.Logger}
+ at var logger: the logger to send all log messages to for this module
+
+"""
 
 from DebTorrent import PSYCO
 if PSYCO.psyco:
@@ -36,6 +41,8 @@
 except:
     True = 1
     False = 0
+
+logger = logging.getLogger('DebTorrent.launchmanycore')
 
 def fmttime(n):
     """Formats seconds into a human-readable time.
@@ -377,15 +384,15 @@
             # Save the current state of the downloads
             self.configdir.saveState(self.pickle())
 
-            logging.info('shutting down')
+            logger.info('shutting down')
             self.hashcheck_queue = []
             for hash in self.torrent_list:
-                logging.info('dropped "'+self.torrent_cache[hash]['path']+'"')
+                logger.info('dropped "'+self.torrent_cache[hash]['path']+'"')
                 self.downloads[hash].shutdown()
             self.rawserver.shutdown()
 
         except:
-            logging.exception('SYSTEM ERROR - EXCEPTION GENERATED')
+            logger.exception('SYSTEM ERROR - EXCEPTION GENERATED')
 
 
     def gather_stats(self):
@@ -534,7 +541,7 @@
         """
         
         if hash not in self.torrent_cache:
-            logging.error('Asked to start a torrent that is not in the cache')
+            logger.error('Asked to start a torrent that is not in the cache')
             return
         
         c = self.counter
@@ -583,7 +590,7 @@
                 try:
                     os.makedirs(saveas)
                 except:
-                    logging.exception('error creating the saveas directory: '+saveas)
+                    logger.exception('error creating the saveas directory: '+saveas)
                     raise OSError("couldn't create directory for "+x['path']
                                           +" ("+saveas+")")
         else:
@@ -614,7 +621,7 @@
         """
 
         file = '/'.join(path)
-        logging.debug('Trying to find file: '+file)
+        logger.debug('Trying to find file: '+file)
         found_torrents = []
             
         # Check each torrent in the cache
@@ -629,11 +636,11 @@
                 
                 # Check that the file ends with the desired file name
                 if file.endswith('/'.join(f['path'])):
-                    logging.debug('Found file in: '+str(binascii.b2a_hex(hash)))
+                    logger.debug('Found file in: '+str(binascii.b2a_hex(hash)))
                     found_torrents.append((hash, file_num))
         
         if not found_torrents:
-            logging.warning('Failed to find file: '+file)
+            logger.warning('Failed to find file: '+file)
             return None, None
         
         # Find a running torrent with the file, (also the newest non-running torrent)
@@ -641,7 +648,7 @@
         newest_torrent = ''
         for hash, file_num in found_torrents:
             if hash in self.torrent_list:
-                logging.info('Using torrent: ' + str(binascii.b2a_hex(hash)))
+                logger.info('Using torrent: ' + str(binascii.b2a_hex(hash)))
                 return self.downloads[hash].d, file_num
             else:
                 if self.torrent_cache[hash]['time'] > newest_mtime:
@@ -650,14 +657,14 @@
         
         # Otherwise start the newest torrent found running
         if newest_torrent:
-            logging.info('Starting torrent: ' + str(binascii.b2a_hex(hash)))
+            logger.info('Starting torrent: ' + str(binascii.b2a_hex(hash)))
             self.start(newest_torrent)
         else:
-            logging.warning('Could not find the newest torrent, just starting the last one: ' + 
+            logger.warning('Could not find the newest torrent, just starting the last one: ' + 
                             str(binascii.b2a_hex(hash)))
             self.start(hash)
 
-        logging.info('Using torrent: ' + str(binascii.b2a_hex(hash)))
+        logger.info('Using torrent: ' + str(binascii.b2a_hex(hash)))
         return self.downloads[hash].d, file_num
 
     def hashchecksched(self, hash = None):
@@ -696,7 +703,7 @@
         """
         
         if self.torrent_cache.has_key(hash):
-            logging.error('DIED: "'+self.torrent_cache[hash]['path']+'"')
+            logger.error('DIED: "'+self.torrent_cache[hash]['path']+'"')
         
     def has_torrent(self, hash):
         """Determine whether there is a downloader for the torrent.
@@ -735,7 +742,7 @@
         
         """
         
-        logging.error('FAILURE: '+s)
+        logger.error('FAILURE: '+s)
 
     def exchandler(self, s):
         """Indicate to the Output that an exception has occurred.
@@ -745,7 +752,7 @@
         
         """
         
-        logging.error('SYSTEM ERROR - EXCEPTION GENERATED\n'+s)
+        logger.error('SYSTEM ERROR - EXCEPTION GENERATED\n'+s)
 
     def pickle(self):
         """Save the current state of the downloads to a writable state.

Modified: debtorrent/trunk/DebTorrent/parsedir.py
URL: http://svn.debian.org/wsvn/debtorrent/debtorrent/trunk/DebTorrent/parsedir.py?rev=197&op=diff
==============================================================================
--- debtorrent/trunk/DebTorrent/parsedir.py (original)
+++ debtorrent/trunk/DebTorrent/parsedir.py Sat Aug  4 20:48:51 2007
@@ -4,7 +4,12 @@
 #
 # $Id$
 
-"""Parse a directory for torrent files."""
+"""Parse a directory for torrent files.
+
+ at type logger: C{logging.Logger}
+ at var logger: the logger to send all log messages to for this module
+
+"""
 
 from bencode import bencode, bdecode
 from download_bt1 import get_response
@@ -18,6 +23,8 @@
     True = 1
     False = 0
 
+logger = logging.getLogger('DebTorrent.parsedir')
+
 def _errfunc(x):
     """The default output printing function to use.
     
@@ -26,7 +33,7 @@
     
     """
     
-    logging.error(":: "+x)
+    logger.error(":: "+x)
 
 def parsedir(directory, parsed, files, blocked,
              exts = ['dtorrent'], 

Modified: debtorrent/trunk/DebTorrent/piecebuffer.py
URL: http://svn.debian.org/wsvn/debtorrent/debtorrent/trunk/DebTorrent/piecebuffer.py?rev=197&op=diff
==============================================================================
--- debtorrent/trunk/DebTorrent/piecebuffer.py (original)
+++ debtorrent/trunk/DebTorrent/piecebuffer.py Sat Aug  4 20:48:51 2007
@@ -6,6 +6,8 @@
 
 """Store buffers of piece data.
 
+ at type logger: C{logging.Logger}
+ at var logger: the logger to send all log messages to for this module
 @type _pool: L{BufferPool}
 @var _pool: example buffer pool
 @type PieceBuffer: L{SingleBuffer}
@@ -23,6 +25,8 @@
     True = 1
     False = 0
     
+logger = logging.getLogger('DebTorrent.piecebuffer')
+
 class SingleBuffer:
     """A single piece buffer.
     
@@ -48,7 +52,7 @@
         self.pool = pool
         self.buf = array('c')
         self.count = count
-        logging.debug('new/pooled buffer index: '+str(count))
+        logger.debug('new/pooled buffer index: '+str(count))
 
     def init(self):
         """Initialize the new piece buffer."""

Modified: debtorrent/trunk/DebTorrent/subnetparse.py
URL: http://svn.debian.org/wsvn/debtorrent/debtorrent/trunk/DebTorrent/subnetparse.py?rev=197&op=diff
==============================================================================
--- debtorrent/trunk/DebTorrent/subnetparse.py (original)
+++ debtorrent/trunk/DebTorrent/subnetparse.py Sat Aug  4 20:48:51 2007
@@ -6,6 +6,8 @@
 
 """Deal with all types of IP addresses and IP address subnets.
 
+ at type logger: C{logging.Logger}
+ at var logger: the logger to send all log messages to for this module
 @type hexbinmap: C{dictionary}
 @var hexbinmap: mapping from the hex characters to their binary string representation
 @type chrbinmap: C{dictionary}
@@ -25,6 +27,8 @@
     True = 1
     False = 0
     bool = lambda x: not not x
+
+logger = logging.getLogger('DebTorrent.subnetparse')
 
 hexbinmap = {
     '0': '0000',
@@ -276,7 +280,7 @@
                     depth = int(depth)
                 self._append(ip,depth)
             except:
-                logging.warning('could not parse IP range: '+line)
+                logger.warning('could not parse IP range: '+line)
         f.close()
         self.ipv4list.sort()
         self.ipv6list.sort()

Modified: debtorrent/trunk/DebTorrent/torrentlistparse.py
URL: http://svn.debian.org/wsvn/debtorrent/debtorrent/trunk/DebTorrent/torrentlistparse.py?rev=197&op=diff
==============================================================================
--- debtorrent/trunk/DebTorrent/torrentlistparse.py (original)
+++ debtorrent/trunk/DebTorrent/torrentlistparse.py Sat Aug  4 20:48:51 2007
@@ -4,7 +4,12 @@
 #
 # $Id$
 
-"""Parse a file for a list of torrent hashes."""
+"""Parse a file for a list of torrent hashes.
+
+ at type logger: C{logging.Logger}
+ at var logger: the logger to send all log messages to for this module
+
+"""
 
 from binascii import unhexlify
 import logging
@@ -15,6 +20,7 @@
     True = 1
     False = 0
 
+logger = logging.getLogger('DebTorrent.torrentlistparse')
 
 def parsetorrentlist(filename, parsed):
     """Parse a file for a list of torrent hashes.
@@ -44,7 +50,7 @@
                 raise ValueError, 'bad line'
             h = unhexlify(l)
         except:
-            logging.warning('could not parse line in torrent list: '+l)
+            logger.warning('could not parse line in torrent list: '+l)
         if parsed.has_key(h):
             del removed[h]
         else:

Modified: debtorrent/trunk/debtorrent-client.py
URL: http://svn.debian.org/wsvn/debtorrent/debtorrent/trunk/debtorrent-client.py?rev=197&op=diff
==============================================================================
--- debtorrent/trunk/debtorrent-client.py (original)
+++ debtorrent/trunk/debtorrent-client.py Sat Aug  4 20:48:51 2007
@@ -8,6 +8,9 @@
 
 This script implements a client daemon for managing multiple 
 debtorrent downloads.
+
+ at type logger: C{logging.Logger}
+ at var logger: the logger to send all log messages to for this module
 
 """
 
@@ -27,6 +30,8 @@
 import os, logging
 from DebTorrent import version
 from DebTorrent.ConfigDir import ConfigDir
+
+logger = logging.getLogger()
 
 def run(params):
     """Runs the downloader.
@@ -57,31 +62,31 @@
         
         # Create the root handler (removing any others)
         hdlr = logging.FileHandler(outfilename, 'a')
-        hdlr.setFormatter(logging.Formatter('%(asctime)s %(threadName)s %(levelname)s %(module)s %(name)s %(message)s'))
+        hdlr.setFormatter(logging.Formatter('%(asctime)s %(threadName)s %(name)s %(levelname)s %(message)s'))
         for h in logging.root.handlers:
             logging.root.removeHandler(h)
         logging.root.addHandler(hdlr)
         logging.root.setLevel(config['log_level'])
-        logging.info('Logging begins')
+        logger.info('Logging begins')
         
         # Continue
         if config['save_options']:
             configdir.saveConfig(config)
         configdir.deleteOldCacheData(config['expire_cache_data'])
     except ValueError, e:
-        logging.error('error: ' + str(e))
-        logging.error("Usage: debtorrent-client.py <global options>")
-        logging.error(get_usage(defaults, 80, configdefaults))
+        logger.error('error: ' + str(e))
+        logger.error("Usage: debtorrent-client.py <global options>")
+        logger.error(get_usage(defaults, 80, configdefaults))
         logging.shutdown()
         exit(1)
     except IOError, e:
-        logging.exception('error: ' + str(e))
+        logger.exception('error: ' + str(e))
         logging.shutdown()
         exit(2)
 
     LaunchMany(config, configdir)
 
-    logging.info('Shutting down')
+    logger.info('Shutting down')
     logging.shutdown()
 
 if __name__ == '__main__':




More information about the Debtorrent-commits mailing list