manageiq-loggers 0.4.2 → 0.8.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
  SHA256:
3
- metadata.gz: 74435aa6cde9e117c8218ff4551d000ae7da79fdd7c986178b7d409618067312
4
- data.tar.gz: 50871a5265efcd9a2661a47e3c49ea20639a750a66ef0efe95365fc67fd1be71
3
+ metadata.gz: 4fde8d7f48465068c802390222f9f37f00b644b8932637ec6818c0ecec91acbe
4
+ data.tar.gz: 6ad670852b8d6ce6e0803076ce730a288a0c5fd96f1c49c412b8f4dc1c075736
5
5
  SHA512:
6
- metadata.gz: f1248dc1c32419ec042508e9de699ad868ccfd50f8c3ee190981fb8ad75b65f492b057fdbba904eb4636a4bd743046042b8cae3f489c9c486fbae455db17bf4d
7
- data.tar.gz: 3b7ebb8171a01c5ebf04f4291f8be447d599eb8d421d17231e62036c61d01d0ffe1bd374a14a3dc4c135113786983cb9a7438e207123b2e97d50abedd2c00b4c
6
+ metadata.gz: fa8bf70516aa9db5bc934289dc0512e7aa19203cf9794e7692f5c749e33fd3c2b974c9919f89c318cbb931cb1fd4c37639c19d1df7e119473e2227acf513dc4e
7
+ data.tar.gz: 03bd1d9088c70a6344f5803abef6f262994518c9d9c3bfaa8e91e87a66f9fc4828b2d9dc925b0c067e7d1462a0e36b7648edec84fd7d0858bdbefda40835dda7
data/.codeclimate.yml CHANGED
@@ -1,11 +1,14 @@
1
- ---
2
1
  version: '2'
3
2
  prepare:
4
3
  fetch:
5
- - url: https://raw.githubusercontent.com/ManageIQ/guides/master/.rubocop_base.yml
4
+ - url: https://raw.githubusercontent.com/ManageIQ/manageiq-style/master/.rubocop_base.yml
6
5
  path: ".rubocop_base.yml"
7
- - url: https://raw.githubusercontent.com/ManageIQ/guides/master/.rubocop_cc_base.yml
6
+ - url: https://raw.githubusercontent.com/ManageIQ/manageiq-style/master/.rubocop_cc_base.yml
8
7
  path: ".rubocop_cc_base.yml"
8
+ - url: https://raw.githubusercontent.com/ManageIQ/manageiq-style/master/styles/base.yml
9
+ path: styles/base.yml
10
+ - url: https://raw.githubusercontent.com/ManageIQ/manageiq-style/master/styles/cc_base.yml
11
+ path: styles/cc_base.yml
9
12
  checks:
10
13
  argument-count:
11
14
  enabled: false
@@ -28,4 +31,4 @@ plugins:
28
31
  rubocop:
29
32
  enabled: true
30
33
  config: ".rubocop_cc.yml"
31
- channel: 'rubocop-0-69'
34
+ channel: rubocop-0-82
data/.rubocop.yml CHANGED
@@ -1,3 +1,4 @@
1
1
  inherit_from:
2
- - https://raw.githubusercontent.com/ManageIQ/guides/master/.rubocop_base.yml
3
- - .rubocop_local.yml
2
+ - ".rubocop_local.yml"
3
+ inherit_gem:
4
+ manageiq-style: ".rubocop_base.yml"
data/.rubocop_cc.yml CHANGED
@@ -1,4 +1,4 @@
1
1
  inherit_from:
2
- - .rubocop_base.yml
3
- - .rubocop_cc_base.yml
4
- - .rubocop_local.yml
2
+ - ".rubocop_base.yml"
3
+ - ".rubocop_cc_base.yml"
4
+ - ".rubocop_local.yml"
data/.travis.yml CHANGED
@@ -1,10 +1,13 @@
1
1
  ---
2
2
  language: ruby
3
- sudo: false
3
+ dist: bionic
4
4
  cache: bundler
5
5
  rvm:
6
- - 2.4.5
7
- - 2.5.3
6
+ - 2.4.10
7
+ - 2.5.9
8
+ - 2.6.8
9
+ - 2.7.4
10
+ - 3.0.2
8
11
  before_script:
9
12
  - curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
10
13
  - chmod +x ./cc-test-reporter
data/CHANGELOG.md CHANGED
@@ -5,6 +5,37 @@ This project adheres to [Semantic Versioning](http://semver.org/).
5
5
 
6
6
  ## [Unreleased]
7
7
 
8
+ ## [0.8.0] - 2021-11-15
9
+
10
+ ### Changed
11
+ - Add Ruby 2.6, 2.7, and 3.0 to the test matrix
12
+ - Add ability to set class-level and instance-level filters for log_hashes
13
+
14
+ ## [0.7.0] - 2021-09-21
15
+ ### Changed
16
+ - Truncate log lines to 8Kb [(#32)](https://github.com/ManageIQ/manageiq-loggers/pull/32)
17
+ - Honor container log level [(#35)](https://github.com/ManageIQ/manageiq-loggers/pull/35)
18
+ - Use progname rather than syslog_identifier for journald logs [(#36)](https://github.com/ManageIQ/manageiq-loggers/pull/36)
19
+
20
+ ### Fixed
21
+ - Handle Unicode characters in binary messages. [(#34)](https://github.com/ManageIQ/manageiq-loggers/pull/34)
22
+
23
+ ## [0.6.0] - 2020-12-09
24
+ ### Changed
25
+ - Update rake dependency to address CVE-2020-8130 [(#19)](https://github.com/ManageIQ/manageiq-loggers/pull/19)
26
+
27
+ ### Fixed
28
+ - Fix escaping of < and > in Container logger [(#29)](https://github.com/ManageIQ/manageiq-loggers/pull/29)
29
+ - Fix ActiveSupport::Deprecation call [(#29)](https://github.com/ManageIQ/manageiq-loggers/pull/29)
30
+ - 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)
31
+
32
+ ### Added
33
+ - Add code_func to the journald logger [(#23)](https://github.com/ManageIQ/manageiq-loggers/pull/23)
34
+
35
+ ## [0.5.0] - 2020-03-18
36
+ ### Changed
37
+ - Deprecate Thread.current[:current_request]&.request_id in favor of Thread.current[:request_id] [(#17)](https://github.com/ManageIQ/manageiq-loggers/pull/17)
38
+
8
39
  ## [0.4.2] - 2020-01-14
9
40
  ### Fixed
10
41
  - Revert "Change CloudWatch log_group to be the namespace if it exists" [(#16)](https://github.com/ManageIQ/manageiq-loggers/pull/16)
@@ -33,7 +64,11 @@ This project adheres to [Semantic Versioning](http://semver.org/).
33
64
 
34
65
  ## [0.1.0] - 2019-01-08
35
66
 
36
- [Unreleased]: https://github.com/ManageIQ/manageiq-loggers/compare/v0.4.2...master
67
+ [Unreleased]: https://github.com/ManageIQ/manageiq-loggers/compare/v0.8.0...master
68
+ [0.8.0]: https://github.com/ManageIQ/manageiq-loggers/compare/v0.7.0...v0.8.0
69
+ [0.7.0]: https://github.com/ManageIQ/manageiq-loggers/compare/v0.6.0...v0.7.0
70
+ [0.6.0]: https://github.com/ManageIQ/manageiq-loggers/compare/v0.5.0...v0.6.0
71
+ [0.5.0]: https://github.com/ManageIQ/manageiq-loggers/compare/v0.4.2...v0.5.0
37
72
  [0.4.2]: https://github.com/ManageIQ/manageiq-loggers/compare/v0.4.1...v0.4.2
38
73
  [0.4.1]: https://github.com/ManageIQ/manageiq-loggers/compare/v0.4.0...v0.4.1
39
74
  [0.4.0]: https://github.com/ManageIQ/manageiq-loggers/compare/v0.3.0...v0.4.0
data/README.md CHANGED
@@ -39,7 +39,7 @@ To install this gem onto your local machine, run `bundle exec rake install`. To
39
39
 
40
40
  ## Contributing
41
41
 
42
- Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/manageiq-loggers.
42
+ Bug reports and pull requests are welcome on GitHub at https://github.com/ManageIQ/manageiq-loggers.
43
43
 
44
44
  ## License
45
45
 
@@ -7,7 +7,7 @@ require 'English'
7
7
  module ManageIQ
8
8
  module Loggers
9
9
  class Base < Logger
10
- MAX_LOG_LINE_LENGTH = 1.megabyte
10
+ MAX_LOG_LINE_LENGTH = 8.kilobytes
11
11
 
12
12
  def initialize(*args)
13
13
  super
@@ -72,13 +72,24 @@ module ManageIQ
72
72
  end
73
73
  end
74
74
 
75
+ private_class_method def self.clean_log_hashes_filter(filters)
76
+ (Array(filters).compact.map(&:to_s) << "password").uniq
77
+ end
78
+
79
+ def self.log_hashes_filter
80
+ @log_hashes_filter ||= ["password"]
81
+ end
82
+
83
+ def self.log_hashes_filter=(filters)
84
+ @log_hashes_filter = clean_log_hashes_filter(filters)
85
+ end
86
+
75
87
  def self.log_hashes(logger, h, options = {})
76
88
  require 'yaml'
77
89
  require 'manageiq/password'
78
90
 
79
91
  level = options[:log_level] || :info
80
- filter = Array(options[:filter]).flatten.compact.map(&:to_s) << "password"
81
- filter.uniq!
92
+ filter = options[:filter] ? clean_log_hashes_filter(options[:filter]) : log_hashes_filter
82
93
 
83
94
  values = YAML.dump(h.to_hash).gsub(ManageIQ::Password::REGEXP, "[FILTERED]")
84
95
  values = values.split("\n").map do |l|
@@ -91,7 +102,16 @@ module ManageIQ
91
102
  logger.send(level, "\n#{values}")
92
103
  end
93
104
 
105
+ def log_hashes_filter
106
+ @log_hashes_filter || self.class.log_hashes_filter
107
+ end
108
+
109
+ def log_hashes_filter=(filters)
110
+ @log_hashes_filter = self.class.send(:clean_log_hashes_filter, filters)
111
+ end
112
+
94
113
  def log_hashes(h, options = {})
114
+ options[:filter] ||= log_hashes_filter
95
115
  self.class.log_hashes(self, h, options)
96
116
  end
97
117
 
@@ -5,12 +5,8 @@ module ManageIQ
5
5
  logdev.sync = true # Don't buffer container log output
6
6
 
7
7
  super
8
- self.level = DEBUG
9
- self.formatter = Formatter.new
10
- end
11
8
 
12
- def level=(_new_level)
13
- super(DEBUG) # We want everything written to the ContainerLogger written to STDOUT
9
+ self.formatter = Formatter.new
14
10
  end
15
11
 
16
12
  def filename
@@ -36,7 +32,7 @@ module ManageIQ
36
32
  def call(severity, time, progname, msg)
37
33
  # From https://github.com/ViaQ/elasticsearch-templates/releases -> Downloads -> *.asciidoc
38
34
  # NOTE: These values are in a specific order for easier human readbility via STDOUT
39
- {
35
+ payload = {
40
36
  :@timestamp => format_datetime(time),
41
37
  :hostname => hostname,
42
38
  :pid => $PROCESS_ID,
@@ -46,7 +42,13 @@ module ManageIQ
46
42
  :message => prefix_task_id(msg2str(msg)),
47
43
  :request_id => request_id
48
44
  # :tags => "tags string",
49
- }.compact.to_json << "\n"
45
+ }.compact
46
+ JSON.generate(payload) << "\n"
47
+ rescue Encoding::UndefinedConversionError
48
+ raise unless msg.encoding == Encoding::ASCII_8BIT
49
+
50
+ msg.force_encoding("UTF-8")
51
+ retry
50
52
  end
51
53
 
52
54
  private
@@ -64,7 +66,12 @@ module ManageIQ
64
66
  end
65
67
 
66
68
  def request_id
67
- Thread.current[:current_request]&.request_id
69
+ Thread.current[:request_id] || Thread.current[:current_request]&.request_id.tap do |request_id|
70
+ if request_id
71
+ require "active_support/deprecation"
72
+ 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.")
73
+ end
74
+ end
68
75
  end
69
76
  end
70
77
  end
@@ -1,8 +1,10 @@
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
4
+ require "active_support/core_ext/module/aliasing"
5
+
6
+ # Alias syslog_identifier for backwards compatibility
7
+ alias_attribute :syslog_identifier, :progname
6
8
 
7
9
  # Create and return a new ManageIQ::Loggers::Journald instance. The
8
10
  # arguments to the initializer can be ignored unless you're multicasting.
@@ -15,7 +17,6 @@ module ManageIQ
15
17
  super(logdev, *args)
16
18
  @formatter = Formatter.new
17
19
  @progname ||= 'manageiq'
18
- @syslog_identifier ||= @progname
19
20
  end
20
21
 
21
22
  # Comply with the VMDB::Logger interface. For a filename we simply use
@@ -44,14 +45,15 @@ module ManageIQ
44
45
  end
45
46
 
46
47
  message = formatter.call(format_severity(severity), progname, message)
47
- caller_object = caller_locations.last
48
+ caller_object = caller_locations(3, 1).first
48
49
 
49
50
  Systemd::Journal.message(
50
51
  :message => message,
51
52
  :priority => log_level_map[severity],
52
- :syslog_identifier => syslog_identifier,
53
+ :syslog_identifier => progname,
53
54
  :code_line => caller_object.lineno,
54
- :code_file => caller_object.absolute_path
55
+ :code_file => caller_object.absolute_path,
56
+ :code_func => caller_object.label
55
57
  )
56
58
  end
57
59
 
@@ -1,5 +1,5 @@
1
1
  module ManageIQ
2
2
  module Loggers
3
- VERSION = "0.4.2".freeze
3
+ VERSION = "0.8.0".freeze
4
4
  end
5
5
  end
@@ -23,11 +23,12 @@ Gem::Specification.new do |spec|
23
23
  spec.require_paths = ["lib"]
24
24
 
25
25
  spec.add_runtime_dependency "activesupport", ">= 5.0"
26
- spec.add_runtime_dependency "manageiq-password", "~> 0.1"
26
+ spec.add_runtime_dependency "manageiq-password", "< 2"
27
27
 
28
28
  spec.add_development_dependency "bundler"
29
29
  spec.add_development_dependency "cloudwatchlogger"
30
- spec.add_development_dependency "rake", "~> 10.0"
30
+ spec.add_development_dependency "manageiq-style"
31
+ spec.add_development_dependency "rake", ">= 12.3.3"
31
32
  spec.add_development_dependency "rspec", "~> 3.0"
32
33
  spec.add_development_dependency "simplecov"
33
34
  spec.add_development_dependency "systemd-journal" if RbConfig::CONFIG['host_os'] =~ /linux/i
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.2
4
+ version: 0.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - ManageIQ Authors
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-01-14 00:00:00.000000000 Z
11
+ date: 2021-11-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -28,16 +28,16 @@ dependencies:
28
28
  name: manageiq-password
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - "<"
32
32
  - !ruby/object:Gem::Version
33
- version: '0.1'
33
+ version: '2'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - "<"
39
39
  - !ruby/object:Gem::Version
40
- version: '0.1'
40
+ version: '2'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: bundler
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -67,49 +67,49 @@ dependencies:
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
- name: rake
70
+ name: manageiq-style
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - "~>"
73
+ - - ">="
74
74
  - !ruby/object:Gem::Version
75
- version: '10.0'
75
+ version: '0'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - "~>"
80
+ - - ">="
81
81
  - !ruby/object:Gem::Version
82
- version: '10.0'
82
+ version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
- name: rspec
84
+ name: rake
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - "~>"
87
+ - - ">="
88
88
  - !ruby/object:Gem::Version
89
- version: '3.0'
89
+ version: 12.3.3
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - "~>"
94
+ - - ">="
95
95
  - !ruby/object:Gem::Version
96
- version: '3.0'
96
+ version: 12.3.3
97
97
  - !ruby/object:Gem::Dependency
98
- name: simplecov
98
+ name: rspec
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - ">="
101
+ - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: '0'
103
+ version: '3.0'
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - ">="
108
+ - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: '0'
110
+ version: '3.0'
111
111
  - !ruby/object:Gem::Dependency
112
- name: systemd-journal
112
+ name: simplecov
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
115
  - - ">="
@@ -122,8 +122,8 @@ dependencies:
122
122
  - - ">="
123
123
  - !ruby/object:Gem::Version
124
124
  version: '0'
125
- description:
126
- email:
125
+ description:
126
+ email:
127
127
  executables: []
128
128
  extensions: []
129
129
  extra_rdoc_files: []
@@ -154,7 +154,7 @@ homepage: https://github.com/ManageIQ/manageiq-loggers
154
154
  licenses:
155
155
  - Apache-2.0
156
156
  metadata: {}
157
- post_install_message:
157
+ post_install_message:
158
158
  rdoc_options: []
159
159
  require_paths:
160
160
  - lib
@@ -169,8 +169,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
169
169
  - !ruby/object:Gem::Version
170
170
  version: '0'
171
171
  requirements: []
172
- rubygems_version: 3.0.6
173
- signing_key:
172
+ rubygems_version: 3.1.6
173
+ signing_key:
174
174
  specification_version: 4
175
175
  summary: Loggers for ManageIQ projects
176
176
  test_files: []