Sha256: 7bc22543844c75a3cba7e9b553dc60a499d69b8bd72b853e76c5c76f74f851d0
Contents?: true
Size: 1.58 KB
Versions: 1
Compression:
Stored size: 1.58 KB
Contents
# frozen_string_literal: true module SlackWebhookLogger class Formatter < ::Logger::Formatter attr_writer :format def format @format ||= proc { |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})" text = <<~MSG #{msg2str(msg)} MSG { 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 def call(severity, time, progname, msg) format.call(severity, time, progname, msg) 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.1.0 | lib/slack_webhook_logger/formatter.rb |