Sha256: def11038f928f43dcba35929388014e197dd4442540daa01013b7b58ecd9d7d4
Contents?: true
Size: 1.63 KB
Versions: 1
Compression:
Stored size: 1.63 KB
Contents
# frozen_string_literal: true module SlackWebhookLogger class Formatter < ::Logger::Formatter attr_writer :format def format @format ||= proc do |severity, time, _progname, msg| heading = case severity when 'FATAL' "đ *#{severity}*" when 'ERROR' "đ *#{severity}*" when 'WARN' "â ī¸ *#{severity}*" when 'INFO' "âšī¸ *#{severity}*" when 'DEBUG' "đ *#{severity}*" else 'đĒĩ *Logger*' end title = "#{heading} (#{time}) [#{ENV['RAILS_ENV']}]" text = <<~MSG #{msg2str(msg)} MSG slackify(title, text) end end def call(severity, time, progname, msg) format.call(severity, time, progname, msg) end def slackify(title, text) { text: [title, text].join("\n").to_s, blocks: [ { type: 'section', text: { type: 'mrkdwn', text: title } }, { type: 'divider' }, { type: 'section', text: { "type": 'plain_text', "text": text } } ] } end private def msg2str(msg) case msg when ::String msg when ::Exception "#{msg.message} (#{msg.class})\n" << (msg.backtrace || []).join("\n") else msg.inspect end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
slack_webhook_logger-0.2.2 | lib/slack_webhook_logger/formatter.rb |