如何将Ruby Sequel日志设置为DEBUG级别?

14

默认情况下,Ruby Sequel会将所有的数据库查询记录在INFO级别(不像ActiveRecord记录在DEBUG级别)。我该如何更改这个设置?

1个回答

25

以前,使用代理记录器对象就可以很容易地实现,但足够多的人提出了这个问题,所以我对其进行了实现。通过 Sequel 的 git 主分支,您现在可以执行以下操作:

DB.sql_log_level = :debug

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


2
可能在初始化器中。 这取决于Sequel :: Database对象是否在DB中,如果您没有自己加载它,则可能不是真实的。 更安全的方法是:Sequel :: DATABASES.each {| d | d.sql_log_level =:debug} - Jeremy Evans
嗨,Jeremy,那个答案是2010年的。我刚试了一下(DB.sql_log_level = :debug),没有任何调试输出。目前有效的方法是什么?(如果能在这里看到就更好了,因为这是谷歌上的第一个搜索结果...) - Sixtyfive
4
请确保向数据库提供一个日志记录器: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 - ZimbiX

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接