将线程ID添加到ruby日志中

 手浪用户2602936705 发布于 2023-01-09 09:35

我按以下方式创建记录器:

Logging.color_scheme( 'bright',
    :levels => {
        :info  => :green,
        :warn  => :yellow,
        :error => :red,
        :fatal => [:white, :on_red]
    },
    :date => :blue,
    :logger => :cyan,
    :message => :magenta
)
@logger = Logging.logger['main_logger']
@logger.add_appenders(
    Logging.appenders.stdout,
    Logging.appenders.file('file',
       :filename => LOG_FILE_PATH,
       :layout => Logging.layouts.pattern(:pattern => '[%d] %-5l %c: %m\n')
    )
)

我想将线程id添加到每条日志消息(Thread.current.object_id),有没有办法可以做到这一点?

1 个回答
  • 您必须使用映射的诊断上下文'mdc'(请参阅https://github.com/TwP/logging/blob/master/examples/mdc.rb)

    这是我做的:

    Logging.appenders.stdout(
          'stdout',
          :layout => Logging.layouts.pattern(
              :pattern => '%d %-5l [%X{tid}]: %m\n',
              :date_pattern => "%d/%m/%Y %H:%M:%S",
              :color_scheme => 'bright'
          ),
      )
    

    并在您的主题中,指示潮汐字段的值,如下所示:

    Logging.mdc['tid'] = Thread.current.object_id
    

    2023-01-09 09:39 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有