nexus_semantic_logger 1.0.0 → 1.1.0

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: b4d34bf88bf2a928a063405a76a758fb9c456b98ef95648e566ac3a41020f6a1
4
- data.tar.gz: b371208a349846331dc45b38cd64b8da000e6df7b6e05bb03de4c7820c0be504
3
+ metadata.gz: 2f12150f394b0f2c56570a19a1979c3f8cf0f58f3c622d6d2886ed6925041825
4
+ data.tar.gz: 7fc2853cb92631be96b8bc17f07d97eff6057091170704d28ef0280b673ac370
5
5
  SHA512:
6
- metadata.gz: 194c8b3e44165a6c4006a1c972ed1b4c89b52828c960a73c2873ac05a155cf4a6f0939ceace374376fb87c99348906bf1a7103ca981b4db4caafcb2e1737b959
7
- data.tar.gz: 8d85828bf271757d7cdf8409ec9707aabeef7fcb5fd4503835ce2b41650a2b797228a187bb3637deca84c14029e57989dfa204385495cedf8da236c11f5deb9a
6
+ metadata.gz: dd9b6db086b0b1bb5f8cb760577d87a8603ae892aeeb8e01249081911f3b83068e96357ad0c13a8fa184e96a63efb9f55241bbcc1baa7aa4e513021dd713689b
7
+ data.tar.gz: '084c137b346270f171132a5de282a3a2019be85fe5a83de3677cedf26290f6f7b1ced55c2ede9cbd57afe9daa6ed9d5d58ddf60ce5e7954d6e3b937753302e30'
data/.rubocop.yml CHANGED
@@ -1,6 +1,10 @@
1
1
  inherit_gem:
2
2
  rubocop-shopify: rubocop.yml
3
3
 
4
+ Style/ClassVars:
5
+ Enabled: false
6
+ Style/ConditionalAssignment:
7
+ Enabled: false
4
8
  Style/GlobalVars:
5
9
  Enabled: false
6
10
  Style/FrozenStringLiteralComment:
@@ -0,0 +1,77 @@
1
+ # frozen_string_literal: true
2
+ require 'rails_semantic_logger'
3
+
4
+ module NexusSemanticLogger
5
+ class AppenderFilter
6
+ def self.filter_lambda
7
+ -> (log) {
8
+ # log API see https://logger.rocketjob.io/log_struct.html
9
+ # and lib/semantic_logger/levels.rb
10
+ # level: :trace=>0, :debug=>1, :info=>2, :warn=>3, :error=>4, :fatal=>5
11
+ current_log_level = SemanticLogger::Levels.index(env_names_default_level)
12
+
13
+ # Names allow overriding the level that will be appended,
14
+ # else the global level is used to determine appending.
15
+ append = false
16
+ if log.name.in?(env_names_trace)
17
+ append = true
18
+ elsif log.name.in?(env_names_debug)
19
+ append = log.level_index >= 1
20
+ elsif log.name.in?(env_names_info)
21
+ append = log.level_index >= 2
22
+ elsif log.name.in?(env_names_warn)
23
+ append = log.level_index >= 3
24
+ elsif log.name.in?(env_names_error)
25
+ append = log.level_index >= 4
26
+ elsif log.name.in?(env_names_fatal)
27
+ append = log.level_index >= 5
28
+ else
29
+ append = log.level_index >= current_log_level
30
+ end
31
+ append
32
+ }
33
+ end
34
+
35
+ def self.env_names_default_level
36
+ @@names_default_level ||= ENV.fetch('LOG_NAMES_DEFAULT_LEVEL', Rails.application.config.log_level)
37
+ end
38
+
39
+ def self.env_names_trace
40
+ @@names_trace ||= fetch_env_names('LOG_NAMES_TRACE')
41
+ end
42
+
43
+ def self.env_names_debug
44
+ @@names_debug ||= fetch_env_names('LOG_NAMES_DEBUG')
45
+ end
46
+
47
+ def self.env_names_info
48
+ @@names_info ||= fetch_env_names('LOG_NAMES_INFO')
49
+ end
50
+
51
+ def self.env_names_warn
52
+ @@names_warn ||= fetch_env_names('LOG_NAMES_WARN')
53
+ end
54
+
55
+ def self.env_names_error
56
+ @@names_error ||= fetch_env_names('LOG_NAMES_ERROR')
57
+ end
58
+
59
+ def self.env_names_fatal
60
+ @@names_fatal ||= fetch_env_names('LOG_NAMES_FATAL')
61
+ end
62
+
63
+ def self.flush
64
+ @@names_default_level = nil
65
+ @@names_trace = nil
66
+ @@names_debug = nil
67
+ @@names_info = nil
68
+ @@names_warn = nil
69
+ @@names_error = nil
70
+ @@names_fatal = nil
71
+ end
72
+
73
+ def self.fetch_env_names(var)
74
+ ENV.fetch(var, '').split(',').to_set
75
+ end
76
+ end
77
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
- require 'semantic_logger'
2
+ require 'rails_semantic_logger'
3
3
 
4
4
  module NexusSemanticLogger
5
5
  class Application
@@ -33,7 +33,8 @@ module NexusSemanticLogger
33
33
  # Default logging is stdout in datadog compatible JSON.
34
34
  config.rails_semantic_logger.format = NexusSemanticLogger::DatadogFormatter.new(service)
35
35
  config.rails_semantic_logger.add_file_appender = false
36
- config.semantic_logger.add_appender(io: $stdout, formatter: config.rails_semantic_logger.format)
36
+ dd_appender = config.semantic_logger.add_appender(io: $stdout, formatter: config.rails_semantic_logger.format)
37
+ dd_appender.filter = NexusSemanticLogger::AppenderFilter.filter_lambda
37
38
 
38
39
  logger.info('SemanticLogger initialised.', level: config.log_level)
39
40
  end
@@ -44,13 +45,19 @@ module NexusSemanticLogger
44
45
 
45
46
  # Change default logging to coloured logging on stdout.
46
47
  config.semantic_logger.clear_appenders!
47
- config.semantic_logger.add_appender(io: $stdout, formatter: :color)
48
+ color_appender = config.semantic_logger.add_appender(io: $stdout, formatter: :color)
49
+ color_appender.filter = NexusSemanticLogger::AppenderFilter.filter_lambda
50
+
48
51
  if ENV['DD_AGENT_HOST'].present? && ENV['DD_AGENT_PORT'].present?
49
52
  # Development logs can be sent to datadog via a TCP logging endpoint on a local agent.
50
53
  # Each port is assigned a particular service.
51
54
  # See https://logger.rocketjob.io/appenders.html
52
- config.semantic_logger.add_appender(appender: :tcp, server: "#{ENV['DD_AGENT_HOST']}:#{ENV['DD_AGENT_PORT']}",
53
- formatter: config.rails_semantic_logger.format)
55
+ dd_appender = config.semantic_logger.add_appender(
56
+ appender: :tcp,
57
+ server: "#{ENV['DD_AGENT_HOST']}:#{ENV['DD_AGENT_PORT']}",
58
+ formatter: config.rails_semantic_logger.format
59
+ )
60
+ dd_appender.filter = NexusSemanticLogger::AppenderFilter.filter_lambda
54
61
  end
55
62
 
56
63
  logger.info('SemanticLogger initialised in development.', level: config.log_level)
@@ -59,7 +66,8 @@ module NexusSemanticLogger
59
66
  def self.test(config)
60
67
  # Use human readable coloured output for logs when running tests.
61
68
  config.semantic_logger.clear_appenders!
62
- config.semantic_logger.add_appender(io: $stdout, formatter: :color)
69
+ color_appender = config.semantic_logger.add_appender(io: $stdout, formatter: :color)
70
+ color_appender.filter = NexusSemanticLogger::AppenderFilter.filter_lambda
63
71
  end
64
72
  end
65
73
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
  module NexusSemanticLogger
3
- # Leave this as 1.0.0 in order for CI process to replace with the tagged version.
4
- VERSION = '1.0.0'
3
+ # Leave this as 1.1.0 in order for CI process to replace with the tagged version.
4
+ VERSION = '1.1.0'
5
5
  end
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+ require 'nexus_semantic_logger/appender_filter'
2
3
  require 'nexus_semantic_logger/application'
3
4
  require 'nexus_semantic_logger/datadog_formatter'
4
5
 
@@ -13,7 +13,8 @@ Gem::Specification.new do |spec|
13
13
  %x(git ls-files -z).split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
14
14
  end
15
15
  spec.require_paths = ['lib']
16
- spec.add_dependency('amazing_print')
17
- spec.add_dependency('rails_semantic_logger')
18
- spec.add_dependency('net_tcp_client') # For TCP logging.
16
+ spec.add_dependency('amazing_print', '~> 1.4.0')
17
+ spec.add_dependency('rails_semantic_logger', '~> 4.10.0')
18
+ spec.add_dependency('net_tcp_client', '~> 2.2.0') # For TCP logging.
19
+ spec.required_ruby_version = Gem::Requirement.new('>= 2.7.0')
19
20
  end
metadata CHANGED
@@ -1,57 +1,57 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nexus_semantic_logger
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Johnathon Harris
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-07-05 00:00:00.000000000 Z
11
+ date: 2022-07-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: amazing_print
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
19
+ version: 1.4.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '0'
26
+ version: 1.4.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rails_semantic_logger
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ">="
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0'
33
+ version: 4.10.0
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'
40
+ version: 4.10.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: net_tcp_client
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ">="
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '0'
47
+ version: 2.2.0
48
48
  type: :runtime
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: '0'
54
+ version: 2.2.0
55
55
  description:
56
56
  email: john.harris@nexusmods.com
57
57
  executables: []
@@ -63,6 +63,7 @@ files:
63
63
  - Gemfile
64
64
  - README.md
65
65
  - lib/nexus_semantic_logger.rb
66
+ - lib/nexus_semantic_logger/appender_filter.rb
66
67
  - lib/nexus_semantic_logger/application.rb
67
68
  - lib/nexus_semantic_logger/datadog_formatter.rb
68
69
  - lib/nexus_semantic_logger/version.rb
@@ -78,7 +79,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
78
79
  requirements:
79
80
  - - ">="
80
81
  - !ruby/object:Gem::Version
81
- version: '0'
82
+ version: 2.7.0
82
83
  required_rubygems_version: !ruby/object:Gem::Requirement
83
84
  requirements:
84
85
  - - ">="