From 16363d9df94873b98ee81854a5bacd42c3e11820 Mon Sep 17 00:00:00 2001 From: pvincent Date: Sun, 8 Sep 2024 17:20:34 +0400 Subject: [PATCH] log_subscriber with tags --- app/controllers/hot_controller.rb | 1 + lib/semantic/ansi_formatter.rb | 23 +++++++++++++++-------- lib/semantic/dev_loader.rb | 1 + lib/semantic/log_subscriber.rb | 21 ++++++++++++++++++++- 4 files changed, 37 insertions(+), 9 deletions(-) diff --git a/app/controllers/hot_controller.rb b/app/controllers/hot_controller.rb index 7bc59d1..5be1837 100644 --- a/app/controllers/hot_controller.rb +++ b/app/controllers/hot_controller.rb @@ -1,5 +1,6 @@ class HotController < ApplicationController def index + session[:toto1] = 'TOTO1' logger.info('callee') logger.info(__callee__) logger.info(__method__) diff --git a/lib/semantic/ansi_formatter.rb b/lib/semantic/ansi_formatter.rb index a427079..b2c6e8b 100644 --- a/lib/semantic/ansi_formatter.rb +++ b/lib/semantic/ansi_formatter.rb @@ -28,7 +28,6 @@ module Semantic end def call(log, logger) - # puts 'ok2' log = alter(log) self.log = log @@ -46,6 +45,17 @@ module Semantic private + def tags + first_tag = log.tags.empty? ? 'none' : log.tags.first + first_tag.truncate(CENTER_SIZE).center(CENTER_SIZE) + end + + def named_tags + return if log.named_tags.empty? + + log.named_tags + end + def build_regex_redirected dev_port = Rails.application.routes.default_url_options[:port] dev_hosts = ['127.0.0.1', 'localhost', Rails.application.routes.default_url_options[:host]].uniq.join('|') @@ -166,13 +176,10 @@ module Semantic log end - def draw_fatal(char = CHAR_FATAL) - BG_MAGENTA + BOLD + TEXT_WHITE + char + CLEAR - end - + def draw_fatal(char = CHAR_FATAL) = BG_MAGENTA + BOLD + TEXT_WHITE + char + CLEAR def origin = colorize(centerize(log.name), TEXT_CYAN) - def build_prefix(char) = "#{origin} ╣#{colorize(char)}╠ " - def build_terminus = "#{origin} #{TERMINUS_STRING} " + def build_prefix(char) = "#{tags} #{origin} ╣#{colorize(char)}╠ " + def build_terminus = "#{tags} #{origin} #{TERMINUS_STRING} " def centerize(text) = text.truncate(CENTER_SIZE).center(CENTER_SIZE) def colorize(text, tint = color) = "#{tint}#{text}#{CLEAR}" @@ -184,7 +191,7 @@ module Semantic end def build_dimensions(dimensions) - "#{origin} #{dimensions.rails} " + "#{tags} #{origin} #{dimensions.rails} " end def compute_useful_length diff --git a/lib/semantic/dev_loader.rb b/lib/semantic/dev_loader.rb index 4fffe18..e6eae1a 100644 --- a/lib/semantic/dev_loader.rb +++ b/lib/semantic/dev_loader.rb @@ -7,6 +7,7 @@ module Semantic append_subscriber_once end append_ansi_formatter + # Rails.logger.level = :error end private diff --git a/lib/semantic/log_subscriber.rb b/lib/semantic/log_subscriber.rb index 19e066c..ad51380 100644 --- a/lib/semantic/log_subscriber.rb +++ b/lib/semantic/log_subscriber.rb @@ -1,7 +1,26 @@ module Semantic class LogSubscriber < ActiveSupport::LogSubscriber + include SemanticLogger::Loggable + # def logger = SemanticLogger['Rails'] + + SESSION_KEY = 'toto1'.freeze + + def initialize + end + def start_processing(event) - logger.warn("MyStarted #{event.payload[:controller]} - #{event.payload[:action]}", event.payload[:request]) + request = event.payload[:request] + rack_session = event.payload[:headers]['rack.session'] + session_value = rack_session.fetch(SESSION_KEY, 'EMPTY') + + format = event.payload[:format] + format = format.to_s.upcase if format.is_a?(Symbol) + format = '*/*' if format.nil? + + SemanticLogger.tagged(session_value) do + logger.info("Started #{request.raw_request_method} #{request.filtered_path}") + logger.debug("Processing by #{event.payload[:controller]}##{event.payload[:action]} as #{format}") + end end end end