如何将 ruby​​ 记录器日志输出到标准输出以及文件?

2023-12-02

类似于记录器中的 T 恤功能。


你可以写一个伪IO将写入多个的类IO对象。就像是:

class MultiIO
  def initialize(*targets)
     @targets = targets
  end

  def write(*args)
    @targets.each {|t| t.write(*args)}
  end

  def close
    @targets.each(&:close)
  end
end

然后将其设置为日志文件:

log_file = File.open("log/debug.log", "a")
Logger.new MultiIO.new(STDOUT, log_file)

每次Logger calls puts在你的MultiIO对象,它将写入两者STDOUT和你的日志文件。

Edit:我继续思考界面的其余部分。日志设备必须响应write and close (not puts)。只要MultiIO响应这些并将它们代理到真实的 IO 对象,这应该可以工作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将 ruby​​ 记录器日志输出到标准输出以及文件? 的相关文章

  • 我可以通过 GH API 获取两次提交之间一个文件的差异数据吗?

    我知道如何通过 API 以及 SHA 和所有这些好东西来获取文件的提交 但是 假设我只想要 1 次提交中的文件差异或两次提交中同一文件的差异 例如 在这次提交 https github com rails rails commit ea75
  • 如何让 STDOUT 和 STDERR 都转到终端和日志文件?

    我有一个脚本 将由非技术用户交互式运行 该脚本将状态更新写入 STDOUT 以便用户可以确定脚本运行正常 我希望将Stdout和STDERR重定向到终端 以便用户可以看到脚本正在工作 并查看是否存在问题 我还希望将两个流都重定向到日志文件
  • Watir 不会下载 PDF,只能在查看器中打开

    我试图用 Selenium 进行测试 但无法下载 pdf pdf 一直打开 参见我的另一篇文章 RUBY Selenium Webdriver 设置为下载 pdf 文件而不是打开它们 https stackoverflow com ques
  • Serilog 破坏多个日志?

    这实在是太离奇了 我有 2 个完全独立的程序 它们都使用 Serilog 例如 Log Logger new LoggerConfiguration MinimumLevel Debug Filter ByExcluding e gt e
  • 将表列添加到 Group by 子句 - Ruby on Rails - Postgresql

    我正在尝试使用 Heroku 显然 Postgresql 对于聚合函数来说比 SQL 严格得多 当我推送到 Heroku 时 我收到一条错误消息 内容如下 关于另一个问题 https stackoverflow com questions
  • to_proc 方法在 Ruby 中意味着什么?

    我正在学习 Rails 并关注这个线程 https stackoverflow com questions 1961030 我被困住了to proc方法 我认为符号只是字符串的替代品 它们就像字符串 但在内存方面更便宜 如果我还缺少任何其他
  • 如何获取Android崩溃日志?

    我有一个不在市场上的应用程序 使用调试证书签名 但希望在我的应用程序崩溃时获取崩溃日志数据 在哪里可以找到我的应用程序崩溃原因的日志 如果您的应用程序正在被其他人下载并在远程设备上崩溃 您可能需要查看 Android 错误报告库 参考这个帖
  • Rails has_many 通过带有附加属性的表单

    我正在尝试创建一个表单 允许用户向活动添加 编辑 删除位置 我目前找到的所有例子要么是HABTM表单 不允许编辑存在于表单中的附加属性 has many through配置 或仅列出现有关系 下面的图片显示了我想要完成的任务 该列表将显示每
  • 随机化数组元素

    我有一个数组 number 1 2 3 4 5 6 7 8 9 现在 我想随机化数组内容 例如 5 3 2 6 7 1 8 请指导我如何继续 Use the shuffle方法 irb main 001 0 gt 1 2 3 4 5 shu
  • 正则表达式检查 ruby​​ 中的字母数字字符串

    我正在尝试验证 ruby 中的字符串 任何包含空格 下划线或任何特殊字符的字符串都将无法通过验证 有效字符串应仅包含字符 a zA Z0 9 我的代码看起来像 def validate string regex a zA Z0 9 if s
  • 如何将文件中的行读入数组?

    这就是我想做的 但有一句话 lines Array new File open test txt each line lines lt lt line 可能的 执行如下操作 File readlines test txt Read 文档 h
  • 字符串被两个不同的分隔符分割

    我有这样的字符串 some dasd dasd dasdas dasdas dasd das dsad 我需要用两个不同的符号将字符串拆分为数组 and 所以我想得到数组 some dasd dasd dasdas dasdas dasd
  • Ruby 中实现的所有设计模式的备忘单?

    我想知道是否有针对 Ruby 中实现的所有设计模式的备忘单 这样您就不必重新发明轮子 设计模式对于组织大量代码非常有用 因为您不需要像在 verbose algol derivitive language 中那样编写那么多代码来在 ruby
  • 使用自定义 gem 在 Dreamhost/Passenger 上部署 Sinatra 应用程序

    我有一个 Sinatra 应用程序 正在尝试在 Dreamhost 上运行 该应用程序利用 pony 发送电子邮件 为了让应用程序从一开始就启动并运行 在添加小马之前 我必须gem unpack rack and gem unpack si
  • 解析包含 json 字符串的 json

    我有一个 json 里面有另一个 json 但它在双引号内 因此它给了我一个解析错误 除了使用之外还有什么方法可以解析这个jsongsub替换双引号 obj Name FirstName Douglas LastName Crockford
  • Accepts_nested_attributes_for Rails 3 中的实际形式使用

    使用 Ruby on Rails 3 我半明白accepts nested attributes for是如何的supposed工作 但我无法找出以某种形式实现这一点的实用方法 例如 如果有人想在其用户页面中添加他们最近的位置 user r
  • Ruby On Rails 与 Windows Vista - 最佳设置? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 您认为 Win Vista 环境中 RoR 的最佳设置是什么 我尝试过 radrails eclipse 插件 它对我来说似乎太庞大了 我也开始
  • 如何使用define_method创建类方法?

    如果您尝试以元编程方式创建类方法 这非常有用 def self create methods method name To create instance methods define method method name do end T
  • 扭曲的日志记录到屏幕(标准输出)不起作用

    我有这个小程序取自这里 https twistedmatrix com documents 16 3 0 core howto logger html usage for emitting applications from twisted
  • Sublime Text 是否支持 Ruby API(自动完成)?

    如何获取可用于某些对象或类的方法列表 如下所示 Sublime Text 有针对 Ruby 的此功能吗 像这样https github com BoundInCode Display Functions https github com B

随机推荐

  • 如何同时使用 Git 和 Dropbox? [关闭]

    Closed 这个问题需要细节或清晰度 目前不接受答案 Locked 这个问题及其答案是locked因为这个问题是题外话 但却具有历史意义 目前不接受新的答案或互动 是否可以使用Git and Dropbox一起 我认为 Dropbox 上
  • WinRT 8.1 手机 - ListView 重新排序

    我需要在使用 WinRT 创建的 Windows Phone 8 1 应用程序中创建可重新排序的 ListView XAML 如下 它绑定到代码隐藏中的 ObservableDictionary
  • 如何在 Android 中使用 Google Places API for Web 服务?

    如何使用此链接返回 json 格式的结果 我已经有一个服务器密钥 但它一直显示 此 IP 站点或移动应用程序无权使用此 API 密钥 集成 Google Places API 的官方方式是通过 Android 实现 你可以使用地点选择器这是
  • 使用 df2 的日期时间中 df1 的“小时”和“分钟”的条件合并 2 个数据帧

    我有一个数据框df sample像这样 id lt c A A A A A A A A A A A date lt c 2018 11 12 2018 11 12 2018 11 12 2018 11 12 2018 11 12 2018
  • 确定与 COM RPC 服务器通信的客户端进程的进程 ID

    在COM RPC模型中 如果服务器运行在单独的进程上 是否有可能知道与服务器通信的客户端进程的进程ID Use Case 我有一个进程外 RPC 服务器 它可以接收来自一个或多个客户端进程的请求 有时 服务器需要知道客户端进程使用以下命令将
  • 防止 input() 为字母字符以外的任何内容

    我试图为了自我认识而制作一个程序 我想问用户他们的名字是什么 并且我只希望用户能够使用字母表中的字母来回答 或者仅使用字符串 我不希望他们能够用数字 符号等来回答 def cc name input Hello what happens t
  • 为 C++ 标准库配置 clang-check

    我正在尝试运行 Ale 作为我的 linter 它又使用 clang check 来检查我的代码 clang check FeatureManager h Error while trying to load a compilation d
  • 使用自定义列表使用 ItemSource 之前,项目集合必须为空

    在我的班级里ResultEntity如果我做 resultMulti new List
  • 张量流:ValueError:用序列设置数组元素

    我正在使用来自的固定代码这个问题 我收到上述错误 谷歌搜索表明这可能是某种尺寸不匹配 尽管我的诊断没有显示任何 with tf Session as sess sess run init Fit all training data for
  • 将二维码传输到 MySql 数据库

    我一直在试图找出将扫描的 QR 文本文件放入 MySql 数据库的最简单方法 我希望应用程序做的是使用移动设备扫描二维码 然后将扫描的图像保存到文件中 然后将其添加到 MySql 驱动数据库中 有没有一个应用程序可以为我此类项目奠定基础 非
  • 攻击实验室中操作码末尾的 c3

    我正在开发攻击实验室的一个版本 对于阶段 4 和 5 在农场操作中 我有几个以 c3 结尾的操作 但后面还有一个单独的操作retq c3 指令如下 0000000000401a6e
  • XPath:: 获取以下同级

    我有以下 HTML 结构 我正在尝试构建一个强大的方法来提取第二个颜色摘要元素 因为 DOM 中会有许多这样的标签 table tbody tr tr tr tr tr td Color Digest td td AgArAQICGQMVB
  • 对于闪亮仪表板的特定选项卡完全禁用右侧边栏功能

    我下面有一个闪亮的仪表板 我想知道是否有一种方法可以在选择特定选项卡时默认隐藏左侧和右侧边栏 在这种情况下 选项卡 Front 我用它做了shinyJs 有没有办法也隐藏 gear 图标以及从根本上打开右侧边栏的能力 Front 更具体地说
  • 找到两个给定节点之间的路径?

    假设我有以下方式连接的节点 如何获得给定点之间存在的路径数量以及路径详细信息 1 2 node 1 and 2 are connected 2 3 2 5 4 2 5 11 11 12 6 7 5 6 3 6 6 8 8 10 8 9 找到
  • 在python中绘制热图

    我有两个列表 x y 代表二维坐标 例如x 1 4 0 5 2 5 10 33 0 04 and y 2 5 44 0 33 2 14 20 0 03 x i and y i 代表二维中的一个点 现在我还有一个表示每个 x y 点的 热 值
  • 雅虎财经网络服务消失了吗? API变了?暂时下降?

    相当长一段时间以来 我一直在使用以下 REST API 来查询雅虎财经的当前价格 它在多个 Stack Overflow 帖子中都有记录 例如雅虎财经网络服务以及其他地方雅虎财经 http finance yahoo com webserv
  • 为什么使用push/pop而不是sub和mov?

    当我使用不同的编译器时https godbolt org 我注意到编译器生成这样的代码是很常见的 push rax push rbx push rcx call rdx pop rcx pop rbx pop rax 我明白每个push o
  • r - rmarkdown - 渲染数据帧列表

    是否可以将 Markdown 文档中的数据框列表呈现为单独的表格 Example 给定代码块 r listOfDf library knitr df lt data frame a rnorm 10 b rnorm 10 c c rep a
  • Php解析html dom并计算特定行数

    我正在使用 简单的 php DOM 解析器 解析 html 表并计算其行数 我解决了使用以下代码计算其中的所有行 tr 的问题 rows table gt find trClass count count rows echo count 我
  • 如何将 ruby​​ 记录器日志输出到标准输出以及文件?

    类似于记录器中的 T 恤功能 你可以写一个伪IO将写入多个的类IO对象 就像是 class MultiIO def initialize targets targets targets end def write args targets