我有一个使用Sinatra和Sequel gem的网络服务器。我想知道是否可以打印执行到控制台的每个查询。
我在the Sequel documentation中发现我可以设置日志文件路径。
您还可以指定可选参数,例如连接池大小,或记录SQL查询的记录器:
DB = Sequel.connect("postgres://user:password@host:port/database_name",
:max_connections => 10, :logger => Logger.new('log/db.log'))
但是我无法找到任何关于将查询打印到控制台而不是日志的信息。
答案 0 :(得分:3)
您可以,也可以登录多个记录器,请参阅下面的示例
db_location_test = "/db/reservation.accdb"
log_file_path = "#{__FILE__}_#{Time.now.strftime("%Y%m%d")}.txt"
log_file = File.open(log_file_path, "a")
$filelog = Logger.new log_file
$console = Logger.new STDOUT
$console.info "connecting to access database" #only logged to console
sConnectionStringAccess = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=#{db_location_test}"
#sql will be logged to both file and console
DBA = Sequel.ado(:conn_string=>sConnectionStringAccess, :loggers=>[$filelog,$console])
class Reservations < Sequel::Model(:TABLE_RESERVATIONS);end
Reservations.all.each do |record|
$console.info Hash[record]
end