class ChiliLogger::MessageWriter
class for writing log messages
Public Class Methods
new(config)
click to toggle source
# File lib/message_writer/message_writer.rb, line 8 def initialize(config) @default = ChiliLogger::Values::Default.new @env = config[:env] || @default.env @layer = config[:layer] || @default.layer @server_url = config[:server_url] || @default.server_url @cloud_provider = config[:cloud_provider] end
Public Instance Methods
clean_backtrace(backtrace)
click to toggle source
# File lib/message_writer/message_writer.rb, line 28 def clean_backtrace(backtrace) backtrace.reject! { |line| line =~ %r{bundle\/gems} } backtrace end
write(**options)
click to toggle source
# File lib/message_writer/message_writer.rb, line 16 def write(**options) return if ChiliLogger.instance.deactivated desc = options[:desc] || @default.desc user = options[:user] || @default.user main_content = options[:main_content] || @default.main_content main_content[:backtrace] = clean_backtrace(caller) update_logs_coverage(desc, main_content) message_hash(desc: desc, user: user, main_content: main_content) end
write_description_tag(desc)
click to toggle source
# File lib/message_writer/message_writer.rb, line 33 def write_description_tag(desc) env = desc[:env] || @env layer = desc[:layer] || @layer type = desc[:type] || @default.type service = desc[:service] || @default.service action = desc[:action] || @default.action "#{env}.#{layer}.#{type}.#{service}.#{action}" end
Private Instance Methods
cloud_metadata()
click to toggle source
# File lib/message_writer/message_writer.rb, line 82 def cloud_metadata { aws: AwsOpsMetadata } end
message_hash(**options)
click to toggle source
rubocop:disable Metrics/MethodLength
# File lib/message_writer/message_writer.rb, line 52 def message_hash(**options) desc = options[:desc] { desc: write_description_tag(desc), env: @env, layer: @layer, type: desc[:type] || @default.type, service: desc[:service] || @default.service, action: desc[:action] || @default.action, user: options[:user] || @default.undefined_string, timestamp: DateTime.now, "#{desc[:type]}": options[:main_content] || {}, ops_metadata: write_ops_metadata } end
update_logs_coverage(desc, main_content)
click to toggle source
uses message infos to keep logs_coverage up to date with what logs are being generated in the application
# File lib/message_writer/message_writer.rb, line 46 def update_logs_coverage(desc, main_content) backtrace = main_content[:backtrace] || clean_backtrace(caller) CoverageWriter.write(desc, backtrace) end
write_ops_metadata()
click to toggle source
rubocop:enable Metrics/MethodLength
# File lib/message_writer/message_writer.rb, line 69 def write_ops_metadata return unless @cloud_provider provider = @cloud_provider.is_a?(String) ? @cloud_provider.to_sym : @cloud_provider cloud_ops_metadata = cloud_metadata[provider] return unless cloud_ops_metadata { server_url: @server_url, cloud: cloud_ops_metadata.write } end