Browse Source

修复日志打印的异常bug

pull/26/head
ibuler 9 years ago
parent
commit
e4ccb1c43f
  1. 20
      run_log_watch.py

20
run_log_watch.py

@ -22,6 +22,17 @@ define("port", default=8080, help="run on the given port", type=int)
define("host", default='0.0.0.0', help="run port on", type=str)
class MyThread(threading.Thread):
def __init__(self, *args, **kwargs):
super(MyThread, self).__init__(*args, **kwargs)
def run(self):
try:
super(MyThread, self).run()
except WebSocketClosedError:
pass
class EventHandler(ProcessEvent):
def __init__(self, client=None):
self.client = client
@ -34,10 +45,7 @@ class EventHandler(ProcessEvent):
def process_IN_MODIFY(self, event):
print "Modify file:%s." % os.path.join(event.path, event.name)
try:
self.client.write_message(f.read())
except WebSocketClosedError:
raise WebSocketClosedError
self.client.write_message(f.read())
def file_monitor(path='.', client=None):
@ -99,7 +107,7 @@ class MonitorHandler(tornado.websocket.WebSocketHandler):
# 获取监控的path
self.file_path = self.get_argument('file_path', '')
MonitorHandler.clients.append(self)
thread = threading.Thread(target=file_monitor, args=('%s.log' % self.file_path, self))
thread = MyThread(target=file_monitor, args=('%s.log' % self.file_path, self))
MonitorHandler.threads.append(thread)
self.stream.set_nodelay(True)
@ -116,7 +124,7 @@ class MonitorHandler(tornado.websocket.WebSocketHandler):
t.setDaemon(True)
t.start()
except WebSocketClosedError, e:
except WebSocketClosedError:
client_index = MonitorHandler.clients.index(self)
MonitorHandler.threads[client_index].stop()
MonitorHandler.clients.remove(self)

Loading…
Cancel
Save