def listen(self, *args, **kwargs): super(Pystil, self).listen(*args, **kwargs) db_url = 'postgresql+psycopg2://%s:%s@%s:%d/%s' % ( options.db_user, options.db_password, options.db_host, options.db_port, options.db_name) self.db_engine = create_engine(db_url, echo=False) metadata.reflect(bind=self.db_engine, schema='agg') self.db_metadata = metadata self.db = scoped_session(sessionmaker(bind=self.db_engine)) Tracking(self.db_engine.connect(), self.log).start() if not options.debug: handler = SysLogHandler( address='/dev/log', facility=SysLogHandler.LOG_LOCAL1) handler.setLevel(logging.INFO) handler.setFormatter( logging.Formatter( 'PYSTIL: %(name)s: %(levelname)s %(message)s')) smtp_handler = SMTPHandler( 'smtp.keleos.fr', '*****@*****.**', '*****@*****.**', 'Pystil Exception') smtp_handler.setLevel(logging.ERROR) log.addHandler(smtp_handler) for logger in ( 'tornado.access', 'tornado.application', 'tornado.general', 'sqlalchemy'): getLogger(logger).addHandler(handler) getLogger(logger).addHandler(smtp_handler) else: self.log.setLevel(logging.DEBUG) try: from wdb.ext import wdb_tornado, add_w_builtin except ImportError: pass else: wdb_tornado(self, start_disabled=True) add_w_builtin()
import json import os import subprocess import tornado.ioloop log = getLogger('half_past_five') log.setLevel(20) server = Application( static_path=os.path.join(os.path.dirname(__file__), "static"), template_path=os.path.join(os.path.dirname(__file__), "templates"), debug=True) from wdb.ext import wdb_tornado wdb_tornado(server, start_disabled=True) class url(object): def __init__(self, url, name=None, suffix=None): self.url = url self.name = name self.suffix = suffix or '' def __call__(self, cls): server.add_handlers( r'.*$', (hpf_url(self.url, cls, name=self.name or ( cls.__name__ + self.suffix)),) ) return cls
import tornado.ioloop import tornado.web class MainHandler(tornado.web.RequestHandler): def get(self): a = 2 b = -2 c = 1 / (a + b) < 0 # <strong> Err œ print(c <b> a) relay_error() self.write("Hello, world") class OkHandler(tornado.web.RequestHandler): def get(self): self.write("Ok") def make_app(): return tornado.web.Application([ (r"/", MainHandler), ]) if __name__ == "__main__": app = make_app() wdb_tornado(app, start_disabled=True) app.listen(8888) tornado.ioloop.IOLoop.current().start()