Module: AppLogger

Included in:
FaradayMiddleware, RackMiddleware
Defined in:
lib/app_logger.rb,
lib/app_logger/version.rb,
lib/app_logger/rack_middleware.rb,
lib/app_logger/faraday_middleware.rb

Defined Under Namespace

Classes: FaradayMiddleware, RackMiddleware

Constant Summary collapse

DATE_PATTERN =
'%Y-%m-%dT%H:%M:%S:%L%zZ'
LOG_PATH =
"log/#{ENV['RACK_ENV']}.log"
VERSION =
'1.2.0'

Class Attribute Summary collapse

Instance Method Summary collapse

Class Attribute Details

.output_formatObject

Returns the value of attribute output_format.



9
10
11
# File 'lib/app_logger.rb', line 9

def output_format
  @output_format
end

.silence_stdoutObject

Returns the value of attribute silence_stdout.



8
9
10
# File 'lib/app_logger.rb', line 8

def silence_stdout
  @silence_stdout
end

Instance Method Details

#create_logger(level: :info) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/app_logger.rb', line 12

def create_logger(level: :info)
  FileUtils.mkdir_p(File.dirname(LOG_PATH))
  Logging.backtrace(true)

  json_layout = Logging.layouts.json(date_pattern: DATE_PATTERN)
  stdout_layout = if AppLogger.output_format == :json
    json_layout
  else
    Logging.layouts.pattern(date_pattern: DATE_PATTERN)
  end

  Logging.logger['App'].tap do |logger|
    logger.appenders = if AppLogger.silence_stdout
      [Logging.appenders.file(LOG_PATH, layout: json_layout)]
    else
      [Logging.appenders.file(LOG_PATH, layout: json_layout), Logging.appenders.stdout(layout: stdout_layout)]
    end
  end
end