Module: Sequel::Database::AppydaysLogger

Defined in:
lib/appydays/loggable/sequel_logger.rb

Overview

Helpers for the Appydays Sequel logger. Very long messages may end up getting logged; the logger will truncate anything longer than truncate_messages_over, with truncation_context number of chars at the beginning and at the end.

If a message is truncated, the full message is logged at log_full_message_level (default :debug). Use nil to disable the full message logging.

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.log_full_message_levelObject

If set, log the full message at this level when truncation occurs. For example, a truncated message may be logged at :info, and the full message logged at :default. Defaults to nil (does not log full messages when truncation occurs).



32
33
34
# File 'lib/appydays/loggable/sequel_logger.rb', line 32

def log_full_message_level
  @log_full_message_level
end

.slow_query_log_levelObject

Log slow queries at this level. See Sequel::Database#log_warn_duration. Default to :warn.



37
38
39
# File 'lib/appydays/loggable/sequel_logger.rb', line 37

def slow_query_log_level
  @slow_query_log_level
end

.truncate_messages_overObject

Messages more than this many characters are truncated. Defaults to 2000.



18
19
20
# File 'lib/appydays/loggable/sequel_logger.rb', line 18

def truncate_messages_over
  @truncate_messages_over
end

.truncation_contextObject

How many characters to preserve before and after truncation. Defaults to 200 (400 total).



26
27
28
# File 'lib/appydays/loggable/sequel_logger.rb', line 26

def truncation_context
  @truncation_context
end

.truncation_messageObject

Placeholder message when truncation occurs. Defaults to ‘<truncated>’.



22
23
24
# File 'lib/appydays/loggable/sequel_logger.rb', line 22

def truncation_message
  @truncation_message
end

Class Method Details

.setdefaultsObject



39
40
41
42
43
44
# File 'lib/appydays/loggable/sequel_logger.rb', line 39

def setdefaults
  @truncate_messages_over = 2000
  @truncation_message = "<truncated>"
  @truncation_context = 200
  @slow_query_log_level = :warn
end

.truncate_message(message) ⇒ Object



46
47
48
49
50
# File 'lib/appydays/loggable/sequel_logger.rb', line 46

def truncate_message(message)
  return message if message.size <= self.truncate_messages_over
  msg = message[...self.truncation_context] + self.truncation_message + message[-self.truncation_context..]
  return msg
end