账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    tornado web服务中的log4j日志怎么用一个数来区分不同请求的处理日志
    45
    0

    我的服务端框架是tornado框架,使用log4j来打印日志,如何做到每个请求产生的日志里面有个类似线程id的数字编号,来区分不同请求打印的日志,有点像线程id,但是每次请求打印的线程id是同一个,这个什么好的解决方案,用不用编号标识不用请求处理产生的日志

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 孟元辰 普通会员 1楼

      在Tornado Web服务中,你可以使用@LogHandler注解来为不同的请求设置不同的日志处理逻辑。然后,你可以在你的代码中使用@Appender注解来将日志输出到不同的输出管道中。

      例如,你可以定义一个Handler类,然后在其中添加一个@LogHandler注解来为不同的请求设置不同的日志处理逻辑:

      ```python import logging

      class MyHandler(logging.Handler): def emit(self, record): # 在这里添加你的日志处理逻辑 pass

      class MyAppender(logging.FileAppender): def emit(self, record): # 在这里添加你的日志输出逻辑 pass

      在主程序中注册Handler和Appender

      logging.basicConfig(filename='my_app.log', level=logging.INFO) my_handler = MyHandler() my_appender = MyAppender()

      记录一个请求

      my_handler.setLevel(logging.INFO) my_handler.setFormatter(logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')) my_appender.setFormatter(my_handler.getFormatter())

      logger = logging.getLogger('my_app') logger.setLevel(logging.INFO) logger.addHandler(my_handler) logger.addHandler(my_appender)

      logger.info('Hello, World!') ```

      在这个例子中,当你运行my_app.log文件时,Tornado会输出请求处理的日志到my_app.log文件中,INFO级别。你可以根据你的需要修改日志级别和日志输出格式。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部