【问题标题】:How do I set Ruby Sequel logging to the DEBUG level?如何将 Ruby Sequel 日志记录设置为 DEBUG 级别?
【发布时间】:2010-10-05 17:40:36
【问题描述】:

默认的 Ruby Sequel 行为是在 INFO 级别记录所有数据库查询(与在 DEBUG 级别记录的 ActiveRecord 不同)。我该如何更改?

【问题讨论】:

    标签: ruby logging sequel


    【解决方案1】:

    以前,使用代理记录器对象相当简单,但有足够多的人要求我实现它。有了 Sequel 的 git master 分支,你现在可以做到:

    DB.sql_log_level = :debug
    

    在记录查询时将使用 debug 方法而不是 info 方法。

    【讨论】:

    • 可能在初始化程序中。它确实取决于数据库中的 Sequel::Database 对象,如果您不自己加载它,这可能不是真的。更安全的选择是:Sequel::DATABASES.each{|d| d.sql_log_level = :debug}
    • 嗨 Jeremy,这个答案来自 2010 年。我刚刚尝试过 (DB.sql_log_level = :debug),根本没有调试输出。目前的工作方法是什么? (在这里看到这一点会特别高兴,因为这是 Google 上的第一个热门……)
    • @Sixtyfive 确保向数据库提供记录器:require 'sequel'; require 'logger'; DB = Sequel.sqlite; DB.loggers << Logger.new($stdout); DB['select 1'].to_a => I, [2020-07-03T18:28:33.321470 #262544] INFO -- : (0.000376s) select 1