insights-loggers-ruby 0.1.6 → 0.1.10

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e4c5770a83d1155b302ab246cde573db7d4ba736ffb709921dced6e594c72626
4
- data.tar.gz: cdcb01d4be0d549247510a1b605eb2964074079cf350cebd1560dcae480e961b
3
+ metadata.gz: b3c5b0ec28bca5abab1df123d3c7156f2d6121ed47cb2cfc85aaff4e46913704
4
+ data.tar.gz: 407cab2b0891fdbba9427961efd53fd9e32e64de0547cd7ab90696fa386ed8d0
5
5
  SHA512:
6
- metadata.gz: 783f3771ab119d5a36550941919cd474f387e6899e7fbf42bf5ccfe3761995a2b591ad81c593d4d5ab18e5462976b4749ab6b9109739d0157c137d8b89f8a253
7
- data.tar.gz: 0f359ef12081f15d39f173374447b5bdb4d0bd4aa1fc50bee770dc5ca84f0c7e7814ebe7dc4ab287a4964ac747f1d3717a63aa1582772a06ecf370ead289f36f
6
+ metadata.gz: fe581909260b999d40c69934063acaa2939ce3a19b4c07b35a9a60613343d294946d00ae67b6b49e66ddb14147d740933b40fba2485a41c0fbdb16e69c139c5a
7
+ data.tar.gz: 45451921677cdc7963e216e38508a524d8cc8f06e869f257f54acb74b85556df480cac1559c50fcfdeb62c9502ca57f9aa902192c44cd0a34664b75d22e36a68
data/README.md CHANGED
@@ -45,6 +45,7 @@ ManageIQ::Loggers::Base
45
45
  ManageIQ::Loggers::Container
46
46
  ManageIQ::Loggers::CloudWatch
47
47
  ManageIQ::Loggers::Journald
48
+ Insights::Loggers::Container
48
49
  Insights::Loggers::StdErrorLogger
49
50
  TopologicalInventory::Providers::Common::Logger
50
51
  ```
@@ -80,7 +81,7 @@ Standard error logger produces formatted output:
80
81
  "pid":11561, # process id
81
82
  "tid":"3fd1d4c2ffd4", # thread id
82
83
  "service": "progname",
83
- "level":"warning", #info, warning, error, debug
84
+ "level":"warning", # info(default), warning, error, debug
84
85
  "message":"test",
85
86
  "request_id": "REQ_ID", # Thread.current[:request_id]
86
87
  "tags":["MyApp"],
@@ -23,10 +23,12 @@ Gem::Specification.new do |spec|
23
23
  spec.require_paths = ["lib"]
24
24
 
25
25
  spec.add_runtime_dependency "activesupport", "~> 5.2", ">= 5.2.4.3"
26
- spec.add_runtime_dependency "topological_inventory-providers-common", "~> 3.0.1"
26
+
27
27
  spec.add_runtime_dependency "manageiq-loggers", "~> 0.4", ">= 0.4.2"
28
28
 
29
- spec.add_runtime_dependency "cloudwatchlogger", "~> 0.3.0"
29
+ spec.add_runtime_dependency "cloudwatchlogger", "~> 0.2.1"
30
+
31
+ spec.add_development_dependency "topological_inventory-providers-common", "~> 3.0.1"
30
32
  spec.add_development_dependency "manageiq-style", "~> 1.3.0"
31
33
  spec.add_development_dependency "rake", "~> 12.3", ">= 12.3.3"
32
34
  spec.add_development_dependency "rspec", "~> 3.0"
@@ -0,0 +1,33 @@
1
+ # inspired by https://github.com/ManageIQ/manageiq-loggers/blob/master/lib/manageiq/loggers/cloud_watch.rb
2
+ require 'active_support/core_ext/string'
3
+ require 'active_support/logger'
4
+
5
+ module Insights
6
+ module Loggers
7
+ class CloudWatch < ManageIQ::Loggers::Base
8
+ NAMESPACE_FILE = "/var/run/secrets/kubernetes.io/serviceaccount/namespace".freeze
9
+
10
+ def self.new(*args)
11
+ access_key_id = ENV["CW_AWS_ACCESS_KEY_ID"].presence
12
+ secret_access_key = ENV["CW_AWS_SECRET_ACCESS_KEY"].presence
13
+ log_group_name = ENV["CLOUD_WATCH_LOG_GROUP"].presence
14
+ log_stream_name = ENV["HOSTNAME"].presence
15
+ container_logger = Insights::Loggers::Container.new
16
+
17
+ return container_logger unless access_key_id && secret_access_key && log_group_name && log_stream_name
18
+
19
+ require 'cloudwatchlogger'
20
+
21
+ creds = {:access_key_id => access_key_id, :secret_access_key => secret_access_key}
22
+ cloud_watch_logdev = CloudWatchLogger::Client.new(creds, log_group_name, log_stream_name)
23
+ super(cloud_watch_logdev).tap { |logger| logger.extend(ActiveSupport::Logger.broadcast(container_logger)) }
24
+ end
25
+
26
+ def initialize(logdev, *args)
27
+ super
28
+ self.formatter = ManageIQ::Loggers::Container::Formatter.new
29
+ self.level = ENV['LOG_LEVEL'] if ENV['LOG_LEVEL']
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,18 @@
1
+ require 'active_support/core_ext/string'
2
+ require 'active_support/logger'
3
+
4
+ module Insights
5
+ module Loggers
6
+ class Container < ManageIQ::Loggers::Container
7
+ def initialize(logdev = STDOUT, *args)
8
+ super
9
+ self.level = ENV['CONTAINER_LOG_LEVEL'] || ENV['LOG_LEVEL'] || DEBUG
10
+ end
11
+
12
+ def level=(new_level)
13
+ # overwrite method ManageIQ::Loggers::Container#level=
14
+ method(__method__).super_method.super_method.call(new_level)
15
+ end
16
+ end
17
+ end
18
+ end
@@ -2,7 +2,7 @@ module Insights
2
2
  module Loggers
3
3
  class Factory
4
4
  def self.create_logger(logger_class, args = nil)
5
- logger_library_loader(logger_class)
5
+ logger_library_loader(logger_class, args)
6
6
  klass = logger_class.safe_constantize
7
7
 
8
8
  if klass
@@ -23,10 +23,18 @@ module Insights
23
23
  logger.app_name_for_formatter(args[:app_name])
24
24
  end
25
25
 
26
+ if args && args[:extend_module]
27
+ logger.extend(args[:extend_module].safe_constantize)
28
+ end
29
+
26
30
  logger
27
31
  end
28
32
 
29
- private_class_method def self.logger_library_loader(logger_class)
33
+ EXTENDED_LIBRARY_FROM_MODULE = {
34
+ "TopologicalInventory::Providers::Common::LoggingFunctions" => "topological_inventory/providers/common/logging"
35
+ }.freeze
36
+
37
+ private_class_method def self.logger_library_loader(logger_class, args = nil)
30
38
  case logger_class
31
39
  when "ManageIQ::Loggers::Base"
32
40
  require "manageiq/loggers/base"
@@ -47,9 +55,25 @@ module Insights
47
55
  when "Insights::Loggers::StdErrorLogger"
48
56
  require "manageiq/loggers/base"
49
57
  require "manageiq/loggers/container"
58
+ require "insights/loggers/container"
50
59
  require "insights/loggers/std_error_logger"
60
+ if args && args[:extend_module]
61
+ library_path = EXTENDED_LIBRARY_FROM_MODULE[args[:extend_module]]
62
+ raise ArgumentError, "Unable to find library for #{args[:extend_module]}" unless library_path
63
+
64
+ require EXTENDED_LIBRARY_FROM_MODULE[args[:extend_module]]
65
+ end
66
+ when "Insights::Loggers::CloudWatch"
67
+ require "manageiq/loggers/base"
68
+ require "manageiq/loggers/container"
69
+ require "insights/loggers/container"
70
+ require "insights/loggers/cloud_watch"
51
71
  when "TopologicalInventory::Providers::Common::Logger"
52
72
  require "topological_inventory/providers/common/logging"
73
+ when "Insights::Loggers::Container"
74
+ require "manageiq/loggers/base"
75
+ require "manageiq/loggers/container"
76
+ require "insights/loggers/container"
53
77
  else
54
78
  raise ArgumentError, "Can't load libraries for #{logger_class}."
55
79
  end
@@ -1,10 +1,11 @@
1
1
  module Insights
2
2
  module Loggers
3
- class StdErrorLogger < ManageIQ::Loggers::Container
3
+ class StdErrorLogger < Container
4
4
  def initialize(*args)
5
5
  super
6
6
  self.reopen(STDERR)
7
7
  self.formatter = Formatter.new
8
+ self.level = INFO
8
9
  end
9
10
 
10
11
  def app_name_for_formatter(app_name)
@@ -1,5 +1,5 @@
1
1
  module Insights
2
2
  module Loggers
3
- VERSION = "0.1.6".freeze
3
+ VERSION = "0.1.10".freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: insights-loggers-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.6
4
+ version: 0.1.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Insights Authors
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-05-06 00:00:00.000000000 Z
11
+ date: 2021-07-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -30,20 +30,6 @@ dependencies:
30
30
  - - ">="
31
31
  - !ruby/object:Gem::Version
32
32
  version: 5.2.4.3
33
- - !ruby/object:Gem::Dependency
34
- name: topological_inventory-providers-common
35
- requirement: !ruby/object:Gem::Requirement
36
- requirements:
37
- - - "~>"
38
- - !ruby/object:Gem::Version
39
- version: 3.0.1
40
- type: :runtime
41
- prerelease: false
42
- version_requirements: !ruby/object:Gem::Requirement
43
- requirements:
44
- - - "~>"
45
- - !ruby/object:Gem::Version
46
- version: 3.0.1
47
33
  - !ruby/object:Gem::Dependency
48
34
  name: manageiq-loggers
49
35
  requirement: !ruby/object:Gem::Requirement
@@ -70,14 +56,28 @@ dependencies:
70
56
  requirements:
71
57
  - - "~>"
72
58
  - !ruby/object:Gem::Version
73
- version: 0.3.0
59
+ version: 0.2.1
74
60
  type: :runtime
75
61
  prerelease: false
76
62
  version_requirements: !ruby/object:Gem::Requirement
77
63
  requirements:
78
64
  - - "~>"
79
65
  - !ruby/object:Gem::Version
80
- version: 0.3.0
66
+ version: 0.2.1
67
+ - !ruby/object:Gem::Dependency
68
+ name: topological_inventory-providers-common
69
+ requirement: !ruby/object:Gem::Requirement
70
+ requirements:
71
+ - - "~>"
72
+ - !ruby/object:Gem::Version
73
+ version: 3.0.1
74
+ type: :development
75
+ prerelease: false
76
+ version_requirements: !ruby/object:Gem::Requirement
77
+ requirements:
78
+ - - "~>"
79
+ - !ruby/object:Gem::Version
80
+ version: 3.0.1
81
81
  - !ruby/object:Gem::Dependency
82
82
  name: manageiq-style
83
83
  requirement: !ruby/object:Gem::Requirement
@@ -178,6 +178,8 @@ files:
178
178
  - insights-loggers-ruby.gemspec
179
179
  - lib/insights-loggers.rb
180
180
  - lib/insights/loggers.rb
181
+ - lib/insights/loggers/cloud_watch.rb
182
+ - lib/insights/loggers/container.rb
181
183
  - lib/insights/loggers/factory.rb
182
184
  - lib/insights/loggers/std_error_logger.rb
183
185
  - lib/insights/loggers/version.rb