lib/legion/logging/builder.rb in legion-logging-0.1.4 vs lib/legion/logging/builder.rb in legion-logging-0.2.0

- old
+ new

@@ -1,20 +1,38 @@ module Legion module Logging module Builder - def log_format(_options = {}, log = @log) + def log_format(options = {}, log = @log) # rubocop:disable Metrics/AbcSize log.formatter = proc do |severity, datetime, _progname, msg| - "[#{datetime}][#{::Process.pid}] #{severity} #{msg}\n" + options[:lex_name] = options.key?(:lex) ? "[lex-#{options[:lex]}]" : nil + unless options[:lex_name].nil? + data = caller_locations[4].to_s.split('/').last(2) + runner_trace = { + type: data[0], + file: file = data[1].split('.')[0], # rubocop:disable Lint/UselessAssignment + function: data[1].split('`')[1].delete_suffix('\''), + line_number: line_number = data[1].split(':')[1] # rubocop:disable Lint/UselessAssignment + } + end + string = "[#{datetime}][#{::Process.pid}]" + string.concat(options[:lex_name]) unless options[:lex_name].nil? + if runner_trace.is_a?(Hash) && options[:extended] + string.concat("[#{runner_trace[:file]}:#{runner_trace[:line_number]}]") + end + string.concat(" #{severity} #{msg}\n") + string end end def output(options) @log = ::Logger.new($stdout) if options[:log_file].nil? @log = ::Logger.new(options[:log_file]) unless options[:log_file].nil? end - def log_level(level = 'debug', log = @log) - if level == 'debug' + def log_level(level = 'debug', log = @log) # rubocop:disable Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity + if level == 'trace' + log.level = ::Logger::INFO + elsif level == 'debug' log.level = ::Logger::DEBUG elsif level == 'info' log.level = ::Logger::INFO elsif level == 'warn' log.level = ::Logger::WARN