Module: Boxxspring::Worker::Logging

Included in:
Base
Defined in:
lib/boxxspring/worker/logging.rb

Constant Summary collapse

PWD =
Dir.pwd.freeze

Instance Method Summary collapse

Instance Method Details

#loggerObject



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/boxxspring/worker/logging.rb', line 7

def logger
  @logger ||= begin
    workers_env = ENV[ 'WORKERS_ENV' ]

    if Worker.configuration.include?( 'logger' )
     logger = Worker.configuration.logger
    else

      if self.log_local? || workers_env == 'test'
        logger = Logger.new( STDOUT )
      else

        group_name = self.log_group_name

        raise 'A logging group is required. You may need to set LOG_GROUP.' \
          unless group_name.present?

        worker_name = self.human_name.gsub( ' ','_' )

        if workers_env == 'development'
          username = ENV[ 'USER' ] || ENV[ 'USERNAME' ]
          username = username.underscore.dasherize

          group_name = "#{ username }.#{ group_name }"
        elsif workers_env != 'production'
          group_name = "#{ workers_env }.#{ group_name }"
        end

        logger = CloudWatchLogger.new(
          {
            access_key_id: ENV[ 'AWS_ACCESS_KEY_ID' ],
            secret_access_key: ENV[ 'AWS_SECRET_ACCESS_KEY' ]
          },
          group_name,
          worker_name,
          region: ENV[ 'AWS_REGION' ]
        )

      end
    end
    logger.level = self.log_level

    logger

  end
end