Class: Maze::LogUtil
- Inherits:
-
Object
- Object
- Maze::LogUtil
- Defined in:
- lib/maze/logger.rb
Overview
A collection of logging utilities
Class Method Summary collapse
-
.linkify(url, text) ⇒ Object
Produces a clickable link when logged in Buildkite.
-
.log_hash(severity, data) ⇒ Object
Logs Hash-based data, accounting for things like file upload requests that are too big to log meaningfully.
-
.log_hash_by_field(severity, hash) ⇒ Object
Logs a hash field by field,.
Class Method Details
.linkify(url, text) ⇒ Object
Produces a clickable link when logged in Buildkite
77 78 79 80 81 82 83 |
# File 'lib/maze/logger.rb', line 77 def linkify(url, text) if ENV['BUILDKITE'] "\033]1339;url='#{url}';content='#{text}'\a" else "#{text}: #{url}" end end |
.log_hash(severity, data) ⇒ Object
Logs Hash-based data, accounting for things like file upload requests that are too big to log meaningfully.
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/maze/logger.rb', line 42 def log_hash(severity, data) return unless data.is_a? Hash # Try to pretty print as JSON, if not too big begin json = JSON.pretty_generate data if json.length < 128 * 1024 $logger.add severity, json else log_hash_by_field severity, data end rescue Encoding::UndefinedConversionError log_hash_by_field severity, data end end |
.log_hash_by_field(severity, hash) ⇒ Object
Logs a hash field by field,
62 63 64 65 66 67 68 69 70 71 72 |
# File 'lib/maze/logger.rb', line 62 def log_hash_by_field(severity, hash) hash.keys.each do |key| value = hash[key].to_s if value.length < 1024 $logger.add severity, " #{key}: #{value}" else $logger.add severity, " #{key} (length): #{value.length}" $logger.add severity, " #{key} (start): #{value[0, 1024]}" end end end |