如何使我的 Rails 应用程序的每个独角兽工作者日志到不同的文件?

2023-11-25

如何让 Rails 应用程序的每个独角兽工作者写入不同的日志文件?

原因:混合日志文件的问题...... 在默认配置中,Rails 会将其日志消息写入单个日志文件:log/<environment>.log.

Unicorn 工作线程会同时写入同一个日志文件,消息可能会混淆。当 request-log-analyzer 解析日志文件时,这是一个问题。一个例子:

Processing Controller1#action1 ...
Processing Controller2#action2 ...
Completed in 100ms...
Completed in 567ms...

在这个例子中,什么动作在 100 毫秒内完成,什么动作在 567 毫秒内完成?我们永远无法确定。


将此代码添加到 unicorn.rb 中的 after_fork 中:

#one log per unicorn worker
if log = Rails.logger.instance_values['log']
  ext = File.extname log.path
  new_path =log.path.gsub %r{(.*)(#{Regexp.escape ext})}, "\\1.#{worker.nr}\\2"
  Rails.logger.instance_eval do
    @log.close
    @log= open_log new_path, 'a+'
  end
end
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使我的 Rails 应用程序的每个独角兽工作者日志到不同的文件? 的相关文章

随机推荐

  • 为什么 strtotime 在不同时区给出不同的结果?

    我不知道为什么strtotime 在 PHP 中 即使给出相同的日期作为参数 在不同的时区也会返回不同的结果 有人知道答案吗 我也想知道 我可以做类似的任务 转换datetime to an int轻松地进行计算 与另一个在不同时区给出相同
  • 如何为 SQL Server 数据库中的所有表创建触发器

    我有一个专栏LastUpdate在我数据库的所有表中 我想说 在插入更新时LastUpdate getdate 我可以使用触发器来做到这一点 但我发现很难为数据库的每个表编写数百个触发器 如何动态创建影响所有表的触发器 如何为每个表动态创建
  • 将数据从 php 传回给 ajax

    如何将数据从 php of then rows 传递回 ajax PHP query SELECT FROM picture order by rand LIMIT 10 result mysql query query while rec
  • Android 在 snapchat 上分享图片

    我使用此代码来分享分数的屏幕截图 Intent sharingIntent new Intent Intent ACTION SEND sharingIntent setType image png Uri image Uri parse
  • 如何编写 EF.Functions 扩展方法?

    我看到 EF Core 2 有 EF Functions 属性EF Core 2 0 公告 which can be used by EF Core or providers to define methods that map to da
  • 在 Python 3 中导入 Rosbag

    我正在尝试从 Python 3 读取 rosbag 文件 我安装了 ROS2 Eloquent Elusor 它应该支持 Python 3 当我跑步时 import rosbag bag rosbag Bag test bag 从Pytho
  • JavaScript 数组的 Big O

    JavaScript 中的数组很容易通过添加和删除项目来修改 它在某种程度上掩盖了这样一个事实 大多数语言数组都是固定大小的 并且需要复杂的操作来调整大小 JavaScript 似乎可以很容易地编写出性能不佳的数组代码 这就引出了一个问题
  • EditText 中的“自动换行:换行”

    android 有类似 css 的属性 word wrap 吗 我只是希望我的文本不被空格 破折号等包裹 如下所示 hello w orld 代替 hello world 不幸的是 android没有这个属性 但您可以使用 Replacem
  • 如何正确使用从 swagger 规范生成的服务器存根?

    我使用 Swagger 2 0 和 swagger codegen 实际上是 Maven 的 swagger codegen plugin 来指定 记录和生成 API 并以 Java 作为目标语言 该项目已设置为构建服务器存根 JAX RS
  • R 中的 file.path 函数

    我正在学习名为的函数file path in R 我想知道这个命令是否会像这样更改工作目录setwd 或者简单地给R文件的路径并仅更改工作区 提前致谢 file path 只是创建文件路径的一种便捷方法 它实际上根本不会进行任何导航 例如如
  • 如何检查indexedDB实例是否打开?

    假设我有一个 indexedDB 对象的实例 有没有一种简单的方法来检测对象当前是否处于 打开 状态 我试过了database closePending并查看其他属性 但没有看到一个简单的属性来告诉我数据库的状态 我希望同步执行此操作 尝试
  • Rmarkdown 输出到 word 创建一个表而不是两个

    Rmarkdown 输出到 word 创建一个表而不是两个 当我在 Rstudio 中使用 Rmarkdown 编织 Word 文档时 下面的代码预计会创建两个独立的表格 但它却创建了一个组合表格 代码期望创建一个包含两个表的Word文档
  • textFieldDidBeginEditing:适用于多个文本字段

    我对 iPhone 编程相当陌生 在这里我面临一些问题 现在在我的应用程序中 我有两个文本字段 我想在第二个文本字段开始编辑时触发一个事件 现在我正在使用以下功能 void textFieldDidBeginEditing UITextFi
  • JavaScript 地图对象是否已建立索引以优化 map.get? [复制]

    这个问题在这里已经有答案了 在 V8 中 JavaScript Map object 的键在幕后以某种方式进行索引 以优化map get方法 或者确实map get 只是循环遍历整个地图直到发现关键匹配 我对效率感兴趣map get超过 5
  • 计算 Codeigniter 中数据库查询返回的结果数

    我没有太多运气来检测 Codeigniter 中的数据库查询何时返回零结果 我已经仔细阅读了有关 PHP 计数函数的注释 但我仍然一无所知 我从控制器调用查询 视图 如下所示 data result this gt search model
  • 有没有办法从 Google Fit API 读取每日静息心率?

    iOS Google Fit 应用程序将静息心率作为其指标之一 但是 我在 Android Google Fit 应用程序中没有看到它 我想使用 Google Fit 数据在 Android 应用程序中显示静息心率 然而 Android G
  • Android 的 Context.openFileOutput() 使用什么文件系统路径?

    我不明白为什么 Android 开发者文档中没有这个问题的答案 我发现他们总是令人沮丧 重新Context类上的openFileOutput 方法打开一个文件进行写入 它写入到什么内部存储文件路径 http developer androi
  • 浏览器中的 JavaScript 是否可能发生并发读/写读/写冲突?

    我遇到的情况是 我正在进行多次 比如四个 ajax 调用 使用 AngularJS http get 如果这很重要的话 并且我希望每次调用都回调并增加一个计数器 这样我就可以知道所有 四个 线程何时完成完全的 我担心的是 由于 JavaSc
  • GStreamer:如何连接动态打击垫

    我正在尝试使用 GStreamer 播放文件中的 MP4 视频 我已成功使用 playbin2 并在命令提示符下使用以下命令播放该文件 gst launch filesrc location bbb mp4 decodebin2 autov
  • 如何使我的 Rails 应用程序的每个独角兽工作者日志到不同的文件?

    如何让 Rails 应用程序的每个独角兽工作者写入不同的日志文件 原因 混合日志文件的问题 在默认配置中 Rails 会将其日志消息写入单个日志文件 log