tornado的日志文件输出

如何使用tornado的日志文件输出

1. tornado logging使用的python内置的logging模块
2. 在tornado/options.py 中定义了对logging配置项的一些定义(如果需要添加启动参数,需要在对应的代码中导入options模块),以下是一些在options.py中定义的Option

-help
-logging = info|warning|error|none
-log_to_stderr = True|False
-log_file_prefix = your path
-log_file_max_size = int
-log_file_num_backups = int

3. 我们可以通过添加一启动项-log_file_prefix=your complete log path,将整个webapp相关的日志文件写入到指定文件中(同时需要添加如下代码):

from tornado.options import define, options
tornado.options.parse_command_line()

4. 然后通过类似启动命令:python helloworld.py -log_file_prefix=your ** path

由于tornado优良的可扩展性,我们可以同时启动多个tornado server进程,这里我们提出这种需求场景,如何记录各个端口的server日志?

相关代码:
 

import logging

import tornado.httpserver
import tornado.ioloop
import tornado.web
from tornado.options import define, options

define("port", default=8083, help="Run server on a specific port", type=int)

class MainHandler(tornado.web.RequestHandler):
def get(self):
logging.info("**Request to MainHandler!")
self.write("Hello to the Tornado world!")

settings = {
"debug": True,
}

application = tornado.web.Application([
(r"/", MainHandler),
], **settings)

if __name__ == "__main__":
http_server = tornado.httpserver.HTTPServer(application)

'''
Get the option(s) from the startup command line if ever.

In this tutorial, we define own "port" option to change the
port via the command line, and then we can run multiple tornado
processes at different ports.
'''
tornado.options.parse_command_line()

# This line should be after the parse_command_line()
http_server.listen(options.port)

tornado.ioloop.IOLoop.instance().start()

1. 这里我们自定义一个可根据启动参数来修改的监听端口。
2. 通过-log_file_prefix选项,我们可以将输出日志文件与端口号绑定,用于区分,相关的启动命令类似:
 

python helloworld.py -port=8091 -log_file_prefix=your complete path/[email protected]
python helloworld.py -port=8092 -log_file_prefix=your complete path/[email protected]

通过以上方式,我们就可以记录多个端口的相关日志

猜你喜欢

转载自blog.csdn.net/y281252548/article/details/81358742
今日推荐