Sha256: 539a154a43a3b71263735730331082296e2870226130ff5bc62d57cf4d390c35

Contents?: true

Size: 1.27 KB

Versions: 18

Compression:

Stored size: 1.27 KB

Contents

module PierLogging
  module Helpers
    class EnvConfig
      def self.for(logger = nil, log_dir: 'log', log_file: PierLogging.logger_configuration.env)
        {
          enabled: log_enabled(logger),
          output: log_output(logger, log_dir, log_file),
          level: log_level(logger),
        }
      end

      private

      def self.log_output(logger, log_dir, log_file)
        return nil unless log_enabled(logger)
        log_output_env = ENV.fetch(output_env_var(logger), 'STDOUT').upcase
        log_output_env == 'STDOUT' ? STDOUT : output_file_name(log_dir, log_file)
      end

      def self.log_enabled(logger)
        ENV.fetch(enabled_env_var(logger), 'true') == 'true'
      end

      def self.log_level(logger)
        ENV.fetch(level_env_var(logger), 'info').upcase
      end

      def self.output_env_var(logger)
        ['LOG', logger ,'OUTPUT'].compact.join('_').upcase
      end

      def self.enabled_env_var(logger)
        ['LOG', logger ,'ENABLED'].compact.join('_').upcase
      end

      def self.level_env_var(logger)
        ['LOG', logger ,'LEVEL'].compact.join('_').upcase
      end

      def self.output_file_name(log_dir, log_file)
        [
          [ log_dir, log_file ].join('/'),
          'log'
        ].join('.')
      end
    end
  end
end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
pier_logging-0.4.3 lib/pier_logging/helpers/env_config.rb
pier_logging-0.4.2 lib/pier_logging/helpers/env_config.rb
pier_logging-0.4.1 lib/pier_logging/helpers/env_config.rb
pier_logging-0.3.3 lib/pier_logging/helpers/env_config.rb
pier_logging-0.3.2 lib/pier_logging/helpers/env_config.rb
pier_logging-0.3.1 lib/pier_logging/helpers/env_config.rb
pier_logging-0.3.0 lib/pier_logging/helpers/env_config.rb
pier_logging-0.2.5 lib/pier_logging/helpers/env_config.rb
pier_logging-0.2.4 lib/pier_logging/helpers/env_config.rb
pier_logging-0.2.3 lib/pier_logging/helpers/env_config.rb
pier_logging-0.2.2 lib/pier_logging/helpers/env_config.rb
pier_logging-0.2.1 lib/pier_logging/helpers/env_config.rb
pier_logging-0.2.0 lib/pier_logging/helpers/env_config.rb
pier_logging-0.1.15 lib/pier_logging/helpers/env_config.rb
pier_logging-0.1.14 lib/pier_logging/helpers/env_config.rb
pier_logging-0.1.13 lib/pier_logging/helpers/env_config.rb
pier_logging-0.1.12 lib/pier_logging/helpers/env_config.rb
pier_logging-0.1.11 lib/pier_logging/helpers/env_config.rb