Sha256: f1105c0414b72277f227f8ddc5e933003a2891b93194cc0e52d991d487a23661

Contents?: true

Size: 1.85 KB

Versions: 3

Compression:

Stored size: 1.85 KB

Contents

# Copyright (c) 2022 Contrast Security, Inc. See https://www.contrastsecurity.com/enduser-terms-0317a for more details.
# frozen_string_literal: true

require 'contrast/logger/log'
require 'contrast/logger/cef_log'
require 'contrast/components/base'

module Contrast
  module Components
    module Logger # :nodoc:
      module InstanceMethods # :nodoc:
        def logger
          Contrast::Logger::Log.instance.logger
        end

        # When calling this method from any instance
        # The CEF logger will be initialized and it's
        # path and level will be set. Since we don't
        # call this method unless protect is started,
        # on Agent Startup no file is created before is
        # needed.
        #
        # @return [Logger]
        def cef_logger
          @_cef_logger ||= Contrast::Logger::CEFLog.instance.tap(&:build_logger)
        end
      end

      # So This class here follows the update for the configuration
      # and from know on ( if it's as we planned it to be) it will hold the
      # instance methods and will initialize new instances for where they're needed
      class Interface
        include InstanceMethods
        include Contrast::Components::ComponentBase

        CANON_NAME = 'agent.logger'
        CONFIG_VALUES = %w[path level progname].cs__freeze

        # @return [String, nil]
        attr_accessor :path
        # @return [String, nil]
        attr_accessor :level
        # @return [String, nil]
        attr_accessor :progname
        # @return [String]
        attr_reader :canon_name
        # @return [Array]
        attr_reader :config_values

        def initialize hsh = {}
          @config_values = CONFIG_VALUES
          @canon_name = CANON_NAME
          return unless hsh

          @path = hsh[:path]
          @level = hsh[:level]
          @progname = hsh[:progname]
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
contrast-agent-6.11.0 lib/contrast/components/logger.rb
contrast-agent-6.10.0 lib/contrast/components/logger.rb
contrast-agent-6.9.0 lib/contrast/components/logger.rb