manageiq-loggers 0.3.0 → 0.6.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 +5 -5
- data/.codeclimate.yml +1 -0
- data/.travis.yml +0 -1
- data/CHANGELOG.md +43 -8
- data/lib/manageiq/loggers/cloud_watch.rb +5 -5
- data/lib/manageiq/loggers/container.rb +9 -3
- data/lib/manageiq/loggers/journald.rb +30 -3
- data/lib/manageiq/loggers/version.rb +2 -2
- data/manageiq-loggers.gemspec +5 -2
- metadata +35 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 0b939ba32542c3e8a6c44e535465dacb5a276a86d17891dee3b31fd17afd29f6
|
4
|
+
data.tar.gz: b386c5453ce9d2895b5f90f37c618d387f081fd04ce2f60f8d012229aa51703e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d48fdc4dc59288ea52a96bf9f0d7856e9c87365730f2cd2c752f7ae975176210eb8f96e581e462244a87a21dc5369f5178d6af0ce3ceeca8e86ccad4e63398d0
|
7
|
+
data.tar.gz: de3a7f0df5627f78ba5d9057299ff2f7c17d6be5642e90d704fbf077be1d02fde32394f90e264dd5356b5a3d1e8f99454e8981d70c995fdd39628bc2a84739b7
|
data/.codeclimate.yml
CHANGED
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,25 +1,60 @@
|
|
1
|
-
#
|
1
|
+
# Changelog
|
2
2
|
|
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
|
-
## [
|
6
|
+
## [Unreleased]
|
7
|
+
|
8
|
+
## [0.6.0] - 2020-12-09
|
9
|
+
### Changed
|
10
|
+
- Update rake dependency to address CVE-2020-8130 [(#19)](https://github.com/ManageIQ/manageiq-loggers/pull/19)
|
11
|
+
|
12
|
+
### Fixed
|
13
|
+
- Fix escaping of < and > in Container logger (31 minutes ago) <Jason Frey> [(#29)](https://github.com/ManageIQ/manageiq-loggers/pull/29)
|
14
|
+
- Fix ActiveSupport::Deprecation call (35 minutes ago) <Jason Frey> [(#29)](https://github.com/ManageIQ/manageiq-loggers/pull/29)
|
15
|
+
- Fix the handling of journald code_file/code_line [(#21)](https://github.com/ManageIQ/manageiq-loggers/pull/21) [(#22)](https://github.com/ManageIQ/manageiq-loggers/pull/22)
|
16
|
+
|
17
|
+
### Added
|
18
|
+
- Add code_func to the journald logger [(#23)](https://github.com/ManageIQ/manageiq-loggers/pull/23)
|
19
|
+
|
20
|
+
## [0.5.0] - 2020-03-18
|
21
|
+
### Changed
|
22
|
+
- Deprecate Thread.current[:current_request]&.request_id in favor of Thread.current[:request_id] [(#17)](https://github.com/ManageIQ/manageiq-loggers/pull/17)
|
23
|
+
|
24
|
+
## [0.4.2] - 2020-01-14
|
25
|
+
### Fixed
|
26
|
+
- Revert "Change CloudWatch log_group to be the namespace if it exists" [(#16)](https://github.com/ManageIQ/manageiq-loggers/pull/16)
|
7
27
|
|
8
|
-
##
|
28
|
+
## [0.4.1] - 2020-01-06
|
29
|
+
### Fixed
|
30
|
+
- Change CloudWatch logger log_group and log_stream values for easier debugging and unique identifiers [(#15)](https://github.com/ManageIQ/manageiq-loggers/pull/15)
|
31
|
+
- Enhancements to the journald logger to allow for easier debugging [(#11)](https://github.com/ManageIQ/manageiq-loggers/pull/11)
|
32
|
+
|
33
|
+
## [0.4.0] - 2019-08-15
|
34
|
+
### Changed
|
35
|
+
- The Cloud Watch logger will now also broadcast its log messages to the container logger [(#10)](https://github.com/ManageIQ/manageiq-loggers/pull/10)
|
36
|
+
|
37
|
+
## [0.3.0] - 2019-05-30
|
38
|
+
### Added
|
9
39
|
- Add a Journald Logger [(#5)](https://github.com/ManageIQ/manageiq-loggers/pull/5)
|
10
40
|
- Add a cloud watch logger [(#9)](https://github.com/ManageIQ/manageiq-loggers/pull/9)
|
11
41
|
|
12
42
|
## [0.2.0] - 2019-05-03
|
13
|
-
|
14
|
-
## Added
|
43
|
+
### Added
|
15
44
|
- Log the request id in the container logger if present [(#7)](https://github.com/ManageIQ/manageiq-loggers/pull/7)
|
16
45
|
|
17
46
|
## [0.1.1] - 2019-02-27
|
18
|
-
|
19
|
-
## Fixed
|
47
|
+
### Fixed
|
20
48
|
- Always sync container STDOUT logs [(#4)](https://github.com/ManageIQ/manageiq-loggers/pull/4)
|
21
49
|
|
22
50
|
## [0.1.0] - 2019-01-08
|
23
51
|
|
24
|
-
[Unreleased]: https://github.com/ManageIQ/manageiq-loggers/compare/v0.
|
52
|
+
[Unreleased]: https://github.com/ManageIQ/manageiq-loggers/compare/v0.6.0...master
|
53
|
+
[0.6.0]: https://github.com/ManageIQ/manageiq-loggers/compare/v0.5.0...v0.6.0
|
54
|
+
[0.5.0]: https://github.com/ManageIQ/manageiq-loggers/compare/v0.4.2...v0.5.0
|
55
|
+
[0.4.2]: https://github.com/ManageIQ/manageiq-loggers/compare/v0.4.1...v0.4.2
|
56
|
+
[0.4.1]: https://github.com/ManageIQ/manageiq-loggers/compare/v0.4.0...v0.4.1
|
57
|
+
[0.4.0]: https://github.com/ManageIQ/manageiq-loggers/compare/v0.3.0...v0.4.0
|
58
|
+
[0.3.0]: https://github.com/ManageIQ/manageiq-loggers/compare/v0.2.0...v0.3.0
|
59
|
+
[0.2.0]: https://github.com/ManageIQ/manageiq-loggers/compare/v0.1.1...v0.2.0
|
25
60
|
[0.1.1]: https://github.com/ManageIQ/manageiq-loggers/compare/v0.1.0...v0.1.1
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'active_support/core_ext/string'
|
2
|
+
require 'active_support/logger'
|
2
3
|
|
3
4
|
module ManageIQ
|
4
5
|
module Loggers
|
@@ -9,17 +10,16 @@ module ManageIQ
|
|
9
10
|
access_key_id = ENV["CW_AWS_ACCESS_KEY_ID"].presence
|
10
11
|
secret_access_key = ENV["CW_AWS_SECRET_ACCESS_KEY"].presence
|
11
12
|
log_group_name = ENV["CLOUD_WATCH_LOG_GROUP"].presence
|
12
|
-
log_stream_name =
|
13
|
+
log_stream_name = ENV["HOSTNAME"].presence
|
13
14
|
|
14
|
-
|
15
|
-
|
16
|
-
end
|
15
|
+
container_logger = ManageIQ::Loggers::Container.new
|
16
|
+
return container_logger unless access_key_id && secret_access_key && log_group_name && log_stream_name
|
17
17
|
|
18
18
|
require 'cloudwatchlogger'
|
19
19
|
|
20
20
|
creds = {:access_key_id => access_key_id, :secret_access_key => secret_access_key}
|
21
21
|
cloud_watch_logdev = CloudWatchLogger::Client.new(creds, log_group_name, log_stream_name)
|
22
|
-
super(cloud_watch_logdev)
|
22
|
+
super(cloud_watch_logdev).tap { |logger| logger.extend(ActiveSupport::Logger.broadcast(container_logger)) }
|
23
23
|
end
|
24
24
|
|
25
25
|
def initialize(logdev, *args)
|
@@ -36,7 +36,7 @@ module ManageIQ
|
|
36
36
|
def call(severity, time, progname, msg)
|
37
37
|
# From https://github.com/ViaQ/elasticsearch-templates/releases -> Downloads -> *.asciidoc
|
38
38
|
# NOTE: These values are in a specific order for easier human readbility via STDOUT
|
39
|
-
{
|
39
|
+
payload = {
|
40
40
|
:@timestamp => format_datetime(time),
|
41
41
|
:hostname => hostname,
|
42
42
|
:pid => $PROCESS_ID,
|
@@ -46,7 +46,8 @@ module ManageIQ
|
|
46
46
|
:message => prefix_task_id(msg2str(msg)),
|
47
47
|
:request_id => request_id
|
48
48
|
# :tags => "tags string",
|
49
|
-
}.compact
|
49
|
+
}.compact
|
50
|
+
JSON.generate(payload) << "\n"
|
50
51
|
end
|
51
52
|
|
52
53
|
private
|
@@ -64,7 +65,12 @@ module ManageIQ
|
|
64
65
|
end
|
65
66
|
|
66
67
|
def request_id
|
67
|
-
Thread.current[:current_request]&.request_id
|
68
|
+
Thread.current[:request_id] || Thread.current[:current_request]&.request_id.tap do |request_id|
|
69
|
+
if request_id
|
70
|
+
require "active_support/deprecation"
|
71
|
+
ActiveSupport::Deprecation.warn("Usage of `Thread.current[:current_request]&.request_id` will be deprecated in version 0.5.0. Please switch to `Thread.current[:request_id]` to log request_id automatically.")
|
72
|
+
end
|
73
|
+
end
|
68
74
|
end
|
69
75
|
end
|
70
76
|
end
|
@@ -1,17 +1,33 @@
|
|
1
1
|
module ManageIQ
|
2
2
|
module Loggers
|
3
3
|
class Journald < Base
|
4
|
+
# An syslog identifier used when writing messages. The default is the progname.
|
5
|
+
attr_accessor :syslog_identifier
|
6
|
+
|
7
|
+
# Create and return a new ManageIQ::Loggers::Journald instance. The
|
8
|
+
# arguments to the initializer can be ignored unless you're multicasting.
|
9
|
+
#
|
10
|
+
# Internally we set our own formatter, and automatically set the
|
11
|
+
# progname option to 'manageiq' if not specified.
|
12
|
+
#
|
4
13
|
def initialize(logdev = nil, *args)
|
5
14
|
require "systemd-journal"
|
6
|
-
|
7
15
|
super(logdev, *args)
|
8
|
-
|
16
|
+
@formatter = Formatter.new
|
17
|
+
@progname ||= 'manageiq'
|
18
|
+
@syslog_identifier ||= @progname
|
9
19
|
end
|
10
20
|
|
21
|
+
# Comply with the VMDB::Logger interface. For a filename we simply use
|
22
|
+
# the string 'journald' since we're not using a backing file directly.
|
23
|
+
#
|
11
24
|
def filename
|
12
25
|
"journald"
|
13
26
|
end
|
14
27
|
|
28
|
+
# Redefine this method from the core Logger class. Internally this is
|
29
|
+
# the method used when .info, .warn, etc are called.
|
30
|
+
#
|
15
31
|
def add(severity, message = nil, progname = nil)
|
16
32
|
severity ||= Logger::UNKNOWN
|
17
33
|
return true if severity < @level
|
@@ -28,12 +44,23 @@ module ManageIQ
|
|
28
44
|
end
|
29
45
|
|
30
46
|
message = formatter.call(format_severity(severity), progname, message)
|
47
|
+
caller_object = caller_locations(3, 1).first
|
31
48
|
|
32
|
-
Systemd::Journal.
|
49
|
+
Systemd::Journal.message(
|
50
|
+
:message => message,
|
51
|
+
:priority => log_level_map[severity],
|
52
|
+
:syslog_identifier => syslog_identifier,
|
53
|
+
:code_line => caller_object.lineno,
|
54
|
+
:code_file => caller_object.absolute_path,
|
55
|
+
:code_func => caller_object.label
|
56
|
+
)
|
33
57
|
end
|
34
58
|
|
35
59
|
private
|
36
60
|
|
61
|
+
# Map the Systemd::Journal error levels to the Logger error levels. For
|
62
|
+
# unknown, we go with alert level.
|
63
|
+
#
|
37
64
|
def log_level_map
|
38
65
|
@log_level_map ||= {
|
39
66
|
Logger::UNKNOWN => Systemd::Journal::LOG_ALERT,
|
data/manageiq-loggers.gemspec
CHANGED
@@ -2,10 +2,11 @@
|
|
2
2
|
lib = File.expand_path("../lib", __FILE__)
|
3
3
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
4
|
require "manageiq/loggers/version"
|
5
|
+
require "rbconfig"
|
5
6
|
|
6
7
|
Gem::Specification.new do |spec|
|
7
8
|
spec.name = "manageiq-loggers"
|
8
|
-
spec.version =
|
9
|
+
spec.version = ManageIQ::Loggers::VERSION
|
9
10
|
spec.authors = ["ManageIQ Authors"]
|
10
11
|
|
11
12
|
spec.summary = %q{Loggers for ManageIQ projects}
|
@@ -25,7 +26,9 @@ Gem::Specification.new do |spec|
|
|
25
26
|
spec.add_runtime_dependency "manageiq-password", "~> 0.1"
|
26
27
|
|
27
28
|
spec.add_development_dependency "bundler"
|
28
|
-
spec.add_development_dependency "
|
29
|
+
spec.add_development_dependency "cloudwatchlogger"
|
30
|
+
spec.add_development_dependency "rake", ">= 12.3.3"
|
29
31
|
spec.add_development_dependency "rspec", "~> 3.0"
|
30
32
|
spec.add_development_dependency "simplecov"
|
33
|
+
spec.add_development_dependency "systemd-journal" if RbConfig::CONFIG['host_os'] =~ /linux/i
|
31
34
|
end
|
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.
|
4
|
+
version: 0.6.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:
|
11
|
+
date: 2020-12-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -52,20 +52,34 @@ dependencies:
|
|
52
52
|
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: cloudwatchlogger
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
55
69
|
- !ruby/object:Gem::Dependency
|
56
70
|
name: rake
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|
58
72
|
requirements:
|
59
|
-
- - "
|
73
|
+
- - ">="
|
60
74
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
75
|
+
version: 12.3.3
|
62
76
|
type: :development
|
63
77
|
prerelease: false
|
64
78
|
version_requirements: !ruby/object:Gem::Requirement
|
65
79
|
requirements:
|
66
|
-
- - "
|
80
|
+
- - ">="
|
67
81
|
- !ruby/object:Gem::Version
|
68
|
-
version:
|
82
|
+
version: 12.3.3
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
84
|
name: rspec
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -94,6 +108,20 @@ dependencies:
|
|
94
108
|
- - ">="
|
95
109
|
- !ruby/object:Gem::Version
|
96
110
|
version: '0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: systemd-journal
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ">="
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
97
125
|
description:
|
98
126
|
email:
|
99
127
|
executables: []
|
@@ -141,8 +169,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
141
169
|
- !ruby/object:Gem::Version
|
142
170
|
version: '0'
|
143
171
|
requirements: []
|
144
|
-
|
145
|
-
rubygems_version: 2.6.14
|
172
|
+
rubygems_version: 3.0.6
|
146
173
|
signing_key:
|
147
174
|
specification_version: 4
|
148
175
|
summary: Loggers for ManageIQ projects
|