json_tagged_logger 0.6.0 → 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: ca97d589d38e918e570eab76849c3589dcb4afcffdc40d225f41ea5a61933dba
4
- data.tar.gz: a7bcb458e29394d91f312cf2b0cb478a43a46f546810fdad6837221456ca2ffc
3
+ metadata.gz: 21f6070b94acf4230c68254797e06759ee1d75ca7b857054f3c95d7a872c3d8c
4
+ data.tar.gz: 2fd59fe5624bfcdf4aa7d8e104d138e70c804e237ae8eacbbcc950172b2d53c8
5
5
  SHA512:
6
- metadata.gz: 3509d3b59ed3c6f4d77e78ae8c105f1eb7301ff706857a817689d2da97f2e23ca0b7400d90cae961d0ec51d01a6bbe86c375e4ecc4322fb307cba18575ea473f
7
- data.tar.gz: 168f3b44c2db71af307c5dff9b2ad73858872093e6f0e22e41728b0c97d407e76e4bb56692a368800c840921749310a9bee6b869faed1b4f55ccd21737c54db7
6
+ metadata.gz: 8e9529f75a8ca997b6f074cf370001e147c4853a3eaac0d7e1a55dd46f5a358e685d1b09d17e8fc62d9f12b8a0c4a11194cdf59e50dfbac88314ed8c1e492805
7
+ data.tar.gz: 8cc532c45f74566380a38ca5a71dc1fdbb3874bcdb8bdf3890be770aced174391b736b3951e0f6087fc70be6ade9c86e91a836ae0f47257e054de2e45c1f0c71
data/README.md CHANGED
@@ -110,7 +110,7 @@ those will be added to the `tags` key in the JSON document
110
110
 
111
111
  ## Why?
112
112
 
113
- On its own, `ActiveSupport::TaggedLogging` adds individual tags wrapped in squre brackets at the start of each line of log output. A configuration like
113
+ On its own, `ActiveSupport::TaggedLogging` adds individual tags wrapped in square brackets at the start of each line of log output. A configuration like
114
114
 
115
115
  ```ruby
116
116
  Rails.application.configure do
@@ -1,12 +1,15 @@
1
1
  require 'active_support/core_ext/hash/keys'
2
+ require 'active_support/tagged_logging'
2
3
  require 'json'
3
4
 
4
5
  module JsonTaggedLogger
5
6
  class Formatter
7
+ include ActiveSupport::TaggedLogging::Formatter
8
+
6
9
  attr_accessor :pretty_print
7
10
 
8
11
  def initialize(pretty_print: false)
9
- @pretty_pretty = pretty_print
12
+ @pretty_print = pretty_print
10
13
  end
11
14
 
12
15
  def call(severity, _time, _progname, message)
@@ -22,7 +25,7 @@ module JsonTaggedLogger
22
25
  log[:tags] = text_tags.to_a
23
26
  end
24
27
 
25
- bare_message = message_without_tags(message)
28
+ bare_message = message_without_tags(message.to_s)
26
29
 
27
30
  begin
28
31
  parsed_message = JSON.parse(bare_message)
@@ -37,8 +40,7 @@ module JsonTaggedLogger
37
40
 
38
41
  log.merge!(parsed_message)
39
42
  else
40
- #binding.irb
41
- log.merge!(msg: parsed_message.strip)
43
+ log.merge!(msg: parsed_message.to_s.strip)
42
44
  end
43
45
  end
44
46
 
@@ -56,6 +58,8 @@ module JsonTaggedLogger
56
58
  tag = JSON.parse(t)
57
59
  rescue JSON::ParserError
58
60
  tag = t
61
+ rescue TypeError
62
+ tag = t.to_s
59
63
  ensure
60
64
  if tag.is_a?(Hash)
61
65
  json_tags << tag
@@ -3,9 +3,24 @@ require 'active_support/tagged_logging'
3
3
 
4
4
  module JsonTaggedLogger
5
5
  module Logger
6
- def self.new(logger)
7
- logger.formatter = Formatter.new
8
- ActiveSupport::TaggedLogging.new(logger)
6
+ def self.new(logger, pretty_print: false)
7
+ logger = logger.clone
8
+ logger.formatter = JsonTaggedLogger::Formatter.new(pretty_print: pretty_print)
9
+ logger.extend(self)
9
10
  end
11
+
12
+ delegate :push_tags, :pop_tags, :clear_tags!, to: :formatter
13
+
14
+ def tagged(*tags)
15
+ if block_given?
16
+ formatter.tagged(*tags) { yield self }
17
+ else
18
+ logger = JsonTaggedLogger::Logger.new(self)
19
+ logger.formatter = JsonTaggedLogger::Formatter.new
20
+ logger.push_tags(*formatter.current_tags, *tags)
21
+ logger
22
+ end
23
+ end
24
+
10
25
  end
11
26
  end
@@ -1,3 +1,3 @@
1
1
  module JsonTaggedLogger
2
- VERSION = "0.6.0"
2
+ VERSION = "0.8.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: json_tagged_logger
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ version: 0.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sean Santry
@@ -58,28 +58,28 @@ dependencies:
58
58
  requirements:
59
59
  - - ">="
60
60
  - !ruby/object:Gem::Version
61
- version: '6.1'
61
+ version: '5.2'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
- version: '6.1'
68
+ version: '5.2'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: actionpack
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - ">="
74
74
  - !ruby/object:Gem::Version
75
- version: '6.1'
75
+ version: '5.2'
76
76
  type: :runtime
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: '6.1'
82
+ version: '5.2'
83
83
  description: Formatter for logging with ActiveSupport::TaggedLogging as JSON
84
84
  email:
85
85
  - sean@santry.us
@@ -108,14 +108,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
108
108
  requirements:
109
109
  - - ">="
110
110
  - !ruby/object:Gem::Version
111
- version: '2.7'
111
+ version: '2.6'
112
112
  required_rubygems_version: !ruby/object:Gem::Requirement
113
113
  requirements:
114
114
  - - ">="
115
115
  - !ruby/object:Gem::Version
116
116
  version: '0'
117
117
  requirements: []
118
- rubygems_version: 3.3.20
118
+ rubygems_version: 3.5.16
119
119
  signing_key:
120
120
  specification_version: 4
121
121
  summary: JSON Tagged Log Formatter