manageiq-loggers 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ec8a029b67b090525d2c085a741332c9b2ebb827
4
- data.tar.gz: ee8165c89b34c860f39a667864a74c4e720b83a7
3
+ metadata.gz: 57e42ce8c9d94d968cd0f341fe4809ed825d7686
4
+ data.tar.gz: accdb3174fb08b2c7f8c1f544a29df6af779901f
5
5
  SHA512:
6
- metadata.gz: 9001fc4372ff4c8b7c252c4fae96f07ca62b1a589d13c964e4f1d11dd040b991810c3d7803b1f20ab62ec7351d6593cb1c79129d3e0e9da8ce20c13ccfbefae9
7
- data.tar.gz: b6311b6889df0e2ade54766a2467bcacecb0dd4d910c7d098fec9aef0739c4cc718b83887903aa078b50c4f80fb44ed50e282cfb5033c9fae9c34e9feaa3d4bb
6
+ metadata.gz: 1ce90c2eafe1bd650f5c987256614e3aafda8eb87e826b58fd1b1c1481168cb8f213699747f9742e3d161d2d7de3873670fe49a6ffe84f63c6a08fcabd237b2e
7
+ data.tar.gz: 292d0d0cb8e632f2e833bd7809fdc158af53aa6f91e4cd6e48f45e8d72ce7421f9dfcdc154dab48d8188e5a5d23e90b075bd12dd3960f266dc2134d5df07b47b
@@ -3,6 +3,12 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  This project adheres to [Semantic Versioning](http://semver.org/).
5
5
 
6
+ ## [0.3.0] - 2019-05-30
7
+
8
+ ## Added
9
+ - Add a Journald Logger [(#5)](https://github.com/ManageIQ/manageiq-loggers/pull/5)
10
+ - Add a cloud watch logger [(#9)](https://github.com/ManageIQ/manageiq-loggers/pull/9)
11
+
6
12
  ## [0.2.0] - 2019-05-03
7
13
 
8
14
  ## Added
data/README.md CHANGED
@@ -23,6 +23,14 @@ Or install it yourself as:
23
23
 
24
24
  $ gem install manageiq-loggers
25
25
 
26
+ ## Dependencies
27
+
28
+ Some loggers require additional gems to function correctly. These gems are not specified as dependencies of this gem directly because they may not be needed for all users of manageiq-loggers
29
+
30
+ To use the `Journald` logger, users must specify the `systemd-journal` gem as a dependency
31
+
32
+ To use the `CloudWatch` logger, users must specify the `cloudwatchlogger` gem as a dependency
33
+
26
34
  ## Development
27
35
 
28
36
  After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
@@ -1,3 +1,4 @@
1
1
  require "manageiq/loggers/base"
2
+ require "manageiq/loggers/cloud_watch"
2
3
  require "manageiq/loggers/container"
3
4
  require "manageiq/loggers/version"
@@ -0,0 +1,31 @@
1
+ require 'active_support/core_ext/string'
2
+
3
+ module ManageIQ
4
+ module Loggers
5
+ class CloudWatch < Base
6
+ NAMESPACE_FILE = "/var/run/secrets/kubernetes.io/serviceaccount/namespace".freeze
7
+
8
+ def self.new(*args)
9
+ access_key_id = ENV["CW_AWS_ACCESS_KEY_ID"].presence
10
+ secret_access_key = ENV["CW_AWS_SECRET_ACCESS_KEY"].presence
11
+ log_group_name = ENV["CLOUD_WATCH_LOG_GROUP"].presence
12
+ log_stream_name = File.exist?(NAMESPACE_FILE) ? File.read(NAMESPACE_FILE) : nil
13
+
14
+ unless access_key_id && secret_access_key && log_group_name && log_stream_name
15
+ return ManageIQ::Loggers::Container.new
16
+ end
17
+
18
+ require 'cloudwatchlogger'
19
+
20
+ creds = {:access_key_id => access_key_id, :secret_access_key => secret_access_key}
21
+ cloud_watch_logdev = CloudWatchLogger::Client.new(creds, log_group_name, log_stream_name)
22
+ super(cloud_watch_logdev)
23
+ end
24
+
25
+ def initialize(logdev, *args)
26
+ super
27
+ self.formatter = ManageIQ::Loggers::Container::Formatter.new
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,56 @@
1
+ module ManageIQ
2
+ module Loggers
3
+ class Journald < Base
4
+ def initialize(logdev = nil, *args)
5
+ require "systemd-journal"
6
+
7
+ super(logdev, *args)
8
+ self.formatter = Formatter.new
9
+ end
10
+
11
+ def filename
12
+ "journald"
13
+ end
14
+
15
+ def add(severity, message = nil, progname = nil)
16
+ severity ||= Logger::UNKNOWN
17
+ return true if severity < @level
18
+
19
+ progname ||= @progname
20
+
21
+ if message.nil?
22
+ if block_given?
23
+ message = yield
24
+ else
25
+ message = progname
26
+ progname = @progname
27
+ end
28
+ end
29
+
30
+ message = formatter.call(format_severity(severity), progname, message)
31
+
32
+ Systemd::Journal.print(log_level_map[severity], message)
33
+ end
34
+
35
+ private
36
+
37
+ def log_level_map
38
+ @log_level_map ||= {
39
+ Logger::UNKNOWN => Systemd::Journal::LOG_ALERT,
40
+ Logger::FATAL => Systemd::Journal::LOG_CRIT,
41
+ Logger::ERROR => Systemd::Journal::LOG_ERR,
42
+ Logger::WARN => Systemd::Journal::LOG_WARNING,
43
+ Logger::INFO => Systemd::Journal::LOG_INFO,
44
+ Logger::DEBUG => Systemd::Journal::LOG_DEBUG,
45
+ }
46
+ end
47
+
48
+ class Formatter < Base::Formatter
49
+ def call(severity, progname, msg)
50
+ msg = prefix_task_id(msg2str(msg)).truncate(Base::MAX_LOG_LINE_LENGTH)
51
+ "%5s -- %s: %s\n" % [severity, progname, msg]
52
+ end
53
+ end
54
+ end
55
+ end
56
+ end
@@ -1,5 +1,5 @@
1
1
  module Manageiq
2
2
  module Loggers
3
- VERSION = "0.2.0"
3
+ VERSION = "0.3.0"
4
4
  end
5
5
  end
@@ -24,7 +24,7 @@ Gem::Specification.new do |spec|
24
24
  spec.add_runtime_dependency "activesupport", ">= 5.0"
25
25
  spec.add_runtime_dependency "manageiq-password", "~> 0.1"
26
26
 
27
- spec.add_development_dependency "bundler", "~> 1.16"
27
+ spec.add_development_dependency "bundler"
28
28
  spec.add_development_dependency "rake", "~> 10.0"
29
29
  spec.add_development_dependency "rspec", "~> 3.0"
30
30
  spec.add_development_dependency "simplecov"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: manageiq-loggers
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - ManageIQ Authors
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-05-03 00:00:00.000000000 Z
11
+ date: 2019-05-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -42,16 +42,16 @@ dependencies:
42
42
  name: bundler
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: '1.16'
47
+ version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - "~>"
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: '1.16'
54
+ version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rake
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -117,7 +117,9 @@ files:
117
117
  - lib/manageiq-loggers.rb
118
118
  - lib/manageiq/loggers.rb
119
119
  - lib/manageiq/loggers/base.rb
120
+ - lib/manageiq/loggers/cloud_watch.rb
120
121
  - lib/manageiq/loggers/container.rb
122
+ - lib/manageiq/loggers/journald.rb
121
123
  - lib/manageiq/loggers/version.rb
122
124
  - manageiq-loggers.gemspec
123
125
  homepage: https://github.com/ManageIQ/manageiq-loggers