Class: TestaLogger::Logger::Options

Inherits:
Object
  • Object
show all
Defined in:
lib/testa_logger/logger/options.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(app, group, subgroup, options) ⇒ Options

Returns a new instance of Options.



26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/testa_logger/logger/options.rb', line 26

def initialize(app, group, subgroup, options)
  app_and_groups = format_app_and_groups(app, group, subgroup)
  @shift_age = "daily"
  @level = DEBUG
  @formatter = proc do |severity, datetime, _, msg|
    "#{app_and_groups}[#{datetime.strftime('%Y-%m-%d %H:%M:%S.%L')}]  #{format('%-5.5s', severity)} -- : #{msg}\n"
  end
  @live = false
  @stdout = false
  @filepath = nil
  @tag_length = 13
  @persist = true # requires aws credentials set in env variables
  @faye_url = ENV.fetch("WEB_SOCKET_URL") { "http://ws-service:9292/faye" }
  @faye_token = ENV["FAYE_TOKEN"]
  @s3_credentials = {
    region: ENV["AWS_REGION"],
    access_key_id: ENV["AWS_ACCESS_KEY_ID"],
    secret_access_key: ENV["AWS_SECRET_ACCESS_KEY"],
    bucket_name: ENV["S3_BUCKET_NAME"],
  }

  handle_user_options(options)
  @live = false if app == "ws" # will cause endless loop otherwise
end

Instance Attribute Details

#faye_tokenString

Returns:

  • (String)


21
22
23
# File 'lib/testa_logger/logger/options.rb', line 21

def faye_token
  @faye_token
end

#faye_urlString

Returns:

  • (String)


21
22
23
# File 'lib/testa_logger/logger/options.rb', line 21

def faye_url
  @faye_url
end

#filepathString?

Returns:

  • (String, nil)


18
19
20
# File 'lib/testa_logger/logger/options.rb', line 18

def filepath
  @filepath
end

#formatterProc

Returns:

  • (Proc)


12
13
14
# File 'lib/testa_logger/logger/options.rb', line 12

def formatter
  @formatter
end

#levelInteger

Returns:

  • (Integer)


9
10
11
# File 'lib/testa_logger/logger/options.rb', line 9

def level
  @level
end

#liveTrueClass, FalseClass

Returns:

  • (TrueClass, FalseClass)


15
16
17
# File 'lib/testa_logger/logger/options.rb', line 15

def live
  @live
end

#persistTrueClass, FalseClass

Returns:

  • (TrueClass, FalseClass)


15
16
17
# File 'lib/testa_logger/logger/options.rb', line 15

def persist
  @persist
end

#s3_credentialsHash

Returns:

  • (Hash)


24
25
26
# File 'lib/testa_logger/logger/options.rb', line 24

def s3_credentials
  @s3_credentials
end

#shift_ageString, Integer

Returns:

  • (String, Integer)


6
7
8
# File 'lib/testa_logger/logger/options.rb', line 6

def shift_age
  @shift_age
end

#stdoutTrueClass, FalseClass

Returns:

  • (TrueClass, FalseClass)


15
16
17
# File 'lib/testa_logger/logger/options.rb', line 15

def stdout
  @stdout
end

#tag_lengthInteger

Returns:

  • (Integer)


9
10
11
# File 'lib/testa_logger/logger/options.rb', line 9

def tag_length
  @tag_length
end

Instance Method Details

#format_app_and_groups(app, group, subgroup) ⇒ Object



51
52
53
54
55
56
57
58
59
# File 'lib/testa_logger/logger/options.rb', line 51

def format_app_and_groups(app, group, subgroup)
  string = "[ #{app} | #{group} "
  if subgroup.nil?
    string += "]"
  else
    string += "| #{subgroup} ]"
  end
  string
end

#handle_user_options(options) ⇒ Object



61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
# File 'lib/testa_logger/logger/options.rb', line 61

def handle_user_options(options)
  options.deep_symbolize_keys!
  @shift_age = options[:shift_age] unless options[:shift_age].nil?
  unless options[:level].nil?
    options[:level] = SEV_LABEL.index(options[:level].to_s.upcase).to_i unless options[:level].is_a?(Integer)
    @level = options[:level]
  end
  @formatter = options[:formatter] unless options[:formatter].nil?
  @live = options[:live] unless options[:live].nil?
  @stdout = options[:stdout] unless options[:stdout].nil?
  @filepath = File.expand_path(options[:filepath]) unless options[:filepath].nil?
  @tag_length = options[:tag_length] unless options[:tag_length].nil?
  @persist = options[:persist] unless options[:persist].nil?
  @faye_url = options[:faye_url] unless options[:faye_url].nil?
  @faye_token = options[:faye_token] unless options[:faye_token].nil?
  @s3_credentials = options[:s3_credentials].deep_symbolize_keys if options[:s3_credentials].present?
end