Class: Sequel::Database
- Inherits:
-
Object
- Object
- Sequel::Database
- Defined in:
- lib/appydays/loggable/sequel_logger.rb
Defined Under Namespace
Modules: AppydaysLogger
Instance Method Summary collapse
-
#log_duration(duration, message) ⇒ Object
Log message with message prefixed by duration at info level, or warn level if duration is greater than log_warn_duration.
- #log_each(level, std, semantic) ⇒ Object
- #log_exception(exception, message) ⇒ Object
-
#log_info(message, args = nil) ⇒ Object
Log a message at level info to all loggers.
Instance Method Details
#log_duration(duration, message) ⇒ Object
Log message with message prefixed by duration at info level, or warn level if duration is greater than log_warn_duration.
57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
# File 'lib/appydays/loggable/sequel_logger.rb', line 57 def log_duration(duration, ) lwd = log_warn_duration was_truncated = false log_each( lwd && (duration >= lwd) ? :warn : sql_log_level, proc { "(#{'%0.6fs' % duration}) #{}" }, proc do query = AppydaysLogger.() params = {duration: duration * 1000, query: query} if query != params[:truncated] = true was_truncated = true end ["sequel_query", params] end, ) return unless was_truncated && Sequel::Database::AppydaysLogger. log_each( Sequel::Database::AppydaysLogger., nil, proc { ["sequel_query_debug", {duration: duration * 1000, query: }] }, ) end |
#log_each(level, std, semantic) ⇒ Object
81 82 83 84 85 86 87 88 89 |
# File 'lib/appydays/loggable/sequel_logger.rb', line 81 def log_each(level, std, semantic) @loggers.each do |logger| if logger.is_a?(SemanticLogger::Base) logger.public_send(level, *semantic.call) elsif std logger.public_send(level, std.call) end end end |
#log_exception(exception, message) ⇒ Object
33 34 35 36 37 38 39 40 |
# File 'lib/appydays/loggable/sequel_logger.rb', line 33 def log_exception(exception, ) level = .match?(/^SELECT NULL AS "?nil"? FROM .* LIMIT 1$/i) ? :debug : :error log_each( level, proc { "#{exception.class}: #{exception..strip if exception.}: #{}" }, proc { ["sequel_exception", {sequel_message: }, exception] }, ) end |
#log_info(message, args = nil) ⇒ Object
Log a message at level info to all loggers.
43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/appydays/loggable/sequel_logger.rb', line 43 def log_info(, args=nil) log_each( :info, proc { args ? "#{}; #{args.inspect}" : }, proc do o = {message: } o[:args] = args unless args.nil? ["sequel_log", o] end, ) end |