Use a logger

This commit is contained in:
nemunaire 2014-08-14 12:49:38 +02:00
commit d0b1336d07
14 changed files with 118 additions and 77 deletions

View file

@ -55,7 +55,7 @@ class DCC(server.Server):
self.port = self.foundPort()
if self.port is None:
print ("No more available slot for DCC connection")
self.logger.critical("No more available slot for DCC connection")
self.setError("Il n'y a plus de place disponible sur le serveur"
" pour initialiser une session DCC.")
@ -81,7 +81,7 @@ class DCC(server.Server):
self.s = socket.socket()
try:
self.s.connect((host, port))
print ('Accepted user from', host, port, "for", self.sender)
self.logger.info("Accepted user from %s:%d for %s" % (host, port, self.sender))
self.connected = True
self.stop = False
except:
@ -106,7 +106,7 @@ class DCC(server.Server):
self.setError("Une erreur s'est produite durant la tentative"
" d'ouverture d'une session DCC.")
return False
print ('Listen on', self.port, "for", self.sender)
self.logger.info("Listening on %d for %s" % (self.port, self.sender))
#Send CTCP request for DCC
self.srv.send_ctcp(self.sender,
@ -117,7 +117,7 @@ class DCC(server.Server):
s.listen(1)
#Waiting for the client
(self.s, addr) = s.accept()
print ('Connected by', addr)
self.logger.info("Connected by %d" % addr)
self.connected = True
return True
@ -151,7 +151,7 @@ class DCC(server.Server):
except RuntimeError:
pass
else:
print("File not found `%s'" % filename)
self.logger.error("File not found `%s'" % filename)
def run(self):
self.stopping.clear()
@ -204,7 +204,7 @@ class DCC(server.Server):
if self.realname in self.srv.dcc_clients:
del self.srv.dcc_clients[self.realname]
print ("Closing connection with", self.nick)
self.logger.info("Closing connection with " + self.nick)
self.stopping.set()
if self.closing_event is not None:
self.closing_event()

View file

@ -43,10 +43,10 @@ class IRCServer(server.Server):
realname -- string used as realname on this server
ssl -- require SSL?
"""
server.Server.__init__(self)
self.node = node
server.Server.__init__(self)
self.nick = nick
self.owner = owner
self.realname = realname
@ -173,7 +173,7 @@ class IRCServer(server.Server):
self.s.connect((self.host, self.port)) #Connect to server
except socket.error as e:
self.s = None
print ("\033[1;31mError:\033[0m Unable to connect to %s:%d: %s"
self.logger.critical("Unable to connect to %s:%d: %s"
% (self.host, self.port, os.strerror(e.errno)))
return
self.stopping.clear()
@ -185,10 +185,10 @@ class IRCServer(server.Server):
self.realname)).encode())
raw = self.s.recv(1024)
if not raw:
print ("Unable to connect to %s:%d" % (self.host, self.port))
self.logger.critical("Unable to connect to %s:%d" % (self.host, self.port))
return
self.connected = True
print ("Connection to %s:%d completed" % (self.host, self.port))
self.logger.info("Connection to %s:%d completed" % (self.host, self.port))
if len(self.channels) > 0:
for chn in self.channels.keys():
@ -214,7 +214,7 @@ class IRCServer(server.Server):
self.connected = False
if self.closing_event is not None:
self.closing_event()
print ("Server `%s' successfully stopped." % self.id)
self.logger.info("Server `%s' successfully stopped." % self.id)
self.stopping.set()
# Rearm Thread
threading.Thread.__init__(self)
@ -255,17 +255,17 @@ class IRCServer(server.Server):
"""Send a message without checks or format"""
#TODO: add something for post message treatment here
if channel == self.nick:
print ("\033[1;35mWarning:\033[0m Nemubot talks to himself: %s" % msg)
traceback.print_stack()
self.logger.warn("Nemubot talks to himself: %s" % msg)
self.logger.debug(traceback.print_stack())
if line is not None and channel is not None:
if self.s is None:
print ("\033[1;35mWarning:\033[0m Attempt to send message on a non connected server: %s: %s" % (self.id, line))
traceback.print_stack()
self.logger.warn("Attempt to send message on a non connected server: %s: %s" % (self.id, line))
self.logger.debug(traceback.format_stack())
elif len(line) < 442:
self.s.send (("%s %s :%s%s" % (cmd, channel, line, endl)).encode ())
self.s.send(("%s %s :%s%s" % (cmd, channel, line, endl)).encode ())
else:
print ("\033[1;35mWarning:\033[0m Message truncated due to size (%d ; max : 442) : %s" % (len(line), line))
traceback.print_stack()
self.logger.warn("Message truncated due to size (%d ; max : 442) : %s" % (len(line), line))
self.logger.debug(traceback.format_stack())
self.s.send (("%s %s :%s%s" % (cmd, channel, line[0:442]+"<…>", endl)).encode ())
def send_msg_usr(self, user, msg):

View file

@ -16,6 +16,7 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
import logging
import socket
import threading
@ -29,6 +30,8 @@ class Server(threading.Thread):
self.moremessages = dict()
self.logger = logging.getLogger(__name__ + "/" + self.id)
threading.Thread.__init__(self)
def isDCC(self, to=None):
@ -142,7 +145,7 @@ class Server(threading.Thread):
self.connected = False
#Send a message in order to close the socket
try:
self.s.send(("Bye!\r\n" % self.nick).encode ())
self.s.send(("Bye!\r\n").encode ())
except:
pass
self.stopping.wait()
@ -155,6 +158,7 @@ class Server(threading.Thread):
self._receive_action = receive_action
if not self.connected:
self.stop = False
self.logger.info("Entering main loop for server")
try:
self.start()
except RuntimeError: