Index: logging/handlers.py =================================================================== --- logging/handlers.py (revision 75293) +++ logging/handlers.py (working copy) @@ -41,6 +41,7 @@ DEFAULT_HTTP_LOGGING_PORT = 9022 DEFAULT_SOAP_LOGGING_PORT = 9023 SYSLOG_UDP_PORT = 514 +SYSLOG_TCP_PORT = 514 _MIDNIGHT = 24 * 60 * 60 # number of seconds in a day @@ -692,7 +693,8 @@ "CRITICAL" : "critical" } - def __init__(self, address=('localhost', SYSLOG_UDP_PORT), facility=LOG_USER): + def __init__(self, address=('localhost', SYSLOG_UDP_PORT), + facility=LOG_USER, socktype=socket.SOCK_DGRAM): """ Initialize a handler. @@ -704,13 +706,16 @@ self.address = address self.facility = facility + self.socktype = socktype + if type(address) == types.StringType: self.unixsocket = 1 self._connect_unixsocket(address) else: self.unixsocket = 0 - self.socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) - + self.socket = socket.socket(socket.AF_INET, socktype) + if socktype == socket.SOCK_STREAM: + self.socket.connect(address) self.formatter = None def _connect_unixsocket(self, address): @@ -783,8 +788,10 @@ except socket.error: self._connect_unixsocket(self.address) self.socket.send(msg) + elif self.socktype == socket.SOCK_DGRAM: + self.socket.sendto(msg, self.address) else: - self.socket.sendto(msg, self.address) + self.socket.sendall(msg) except (KeyboardInterrupt, SystemExit): raise except: