Module: SequelLoggers

Included in:
Inform::Persistence
Defined in:
lib/runtime/persistence.rb

Overview

The SequelLoggers module

Constant Summary collapse

DatabaseLogging =
Struct.new(:memo).new({})

Instance Method Summary collapse

Instance Method Details

#add_logger(database, logger) ⇒ Object



70
71
72
# File 'lib/runtime/persistence.rb', line 70

def add_logger(database, logger)
  database.loggers << logger unless database.loggers.include?(logger)
end

#delete_logger(database, logger) ⇒ Object



74
75
76
# File 'lib/runtime/persistence.rb', line 74

def delete_logger(database, logger)
  database.loggers.delete(logger) if database.loggers.include?(logger)
end

#disable_query_loggingObject



94
95
96
97
98
99
100
101
# File 'lib/runtime/persistence.rb', line 94

def disable_query_logging
  logger = DatabaseLogging.memo[:logger]
  Sequel::DATABASES.each do |database|
    logger.debug "Disabling query logging for #{database}"
    delete_logger(database, logger)
    set_log_level(database, DatabaseLogging.memo[:preserved_log_levels][database])
  end
end

#enable_query_loggingObject



83
84
85
86
87
88
89
90
91
92
# File 'lib/runtime/persistence.rb', line 83

def enable_query_logging
  DatabaseLogging.memo[:logger] ||= Logger.new($stdout)
  DatabaseLogging.memo[:preserved_log_levels] ||= {}
  logger = DatabaseLogging.memo[:logger]
  Sequel::DATABASES.each do |database|
    add_logger(database, logger)
    set_log_level(database, :debug)
    logger.debug "Enabled query logging for #{database}"
  end
end

#set_log_level(database, level) ⇒ Object



78
79
80
81
# File 'lib/runtime/persistence.rb', line 78

def set_log_level(database, level)
  DatabaseLogging.memo[:preserved_log_levels][database] = database.sql_log_level
  database.sql_log_level = level unless level.nil?
end