def init(): handlers = [] for service in ws.config.CONFIG['WS_SERVICES']: logger.info("Adding WebSocket service: " + service) handlers.append((r"/ws/" + service, getattr(globals()[service], "WebSocket" + service + "Handler"))) handlers.append((r"/ws/services", WebSocketServicesHandler)) app = tornado.web.Application(handlers=handlers, autoreload=True) return app
def open(self): global HANDLER, OBSERVER self.path, _ = os.path.split(ws.config.CONFIG['ACCESS_LOG']) if self.path not in HANDLER: HANDLER[self.path] = AccessHandler(handler=getattr(self, 'send')) OBSERVER[self.path] = Observer() logger.info("Watching: " + self.path) OBSERVER[self.path].schedule(HANDLER[self.path], self.path, recursive=True) try: OBSERVER[self.path].start() except OSError: logger.error('Cannot start observer') self.close() return self.observer = True self.send({ "lastline": HANDLER[self.path].lastline})
import ws from ws import __version__ from ws.config import init_config from ws.log import logger, init_file_log, init_console_log, close_log define("debug", default=False, help="Log debug information", type=bool) define("port", default=5000, help="run on the given port", type=int) define("config", default=os.getcwd() + "/config.py", help="Path to configuration file", type=str) if __name__ == "__main__": tornado.options.parse_command_line() init_config(options.config) # Init logging to file if options.debug: init_file_log(logging.DEBUG, ws.config.CONFIG['LOG_FILE']) else: init_file_log(logging.INFO, ws.config.CONFIG['LOG_FILE']) # init_file_log(logging.DEBUG) app = ws.init() logger.info("server-hud WebSocket server version " + __version__) http_server = tornado.httpserver.HTTPServer(app) http_server.listen(options.port) logger.info("Listening on port: " + str(options.port)) tornado.ioloop.IOLoop.instance().start()