json_tagged_logger 0.6.0 → 0.8.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: 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