cogger 1.4.0 → 1.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c31256d5e4f8446c023227a43adb18992c566a027c61f7b3356cea081662b2ed
4
- data.tar.gz: 0ef798366fa9b799dbf24967e656ae5840d14e62953aad6c551aac462e0ff1a4
3
+ metadata.gz: 925679ac5f76d9dcd1d9dedde73857a6ca6f66b214321926d63b47a56b4eb857
4
+ data.tar.gz: db34b9122766c6f2b2f914435bd42c41a6b5b77a0b6be2b0352c0630f669c41f
5
5
  SHA512:
6
- metadata.gz: 242434b94151c9072d5dd0bbd5c8985a2020001ed6bd30eb406684755595bac2747c298c694a7c945f3da06a358fceb94b60a8a095c79c169ef2ab55db19411b
7
- data.tar.gz: b3e3e7d9ee7d95b987d6c51c019f8811e0ac1aa9ddbe700997be59c51bf64b13a4903c27c985ffc83d50b7ab90a799bcb842db9aa15875cdb1f40aa8a24e88c7
6
+ metadata.gz: f404fed5aa1db3c8c118586976895c55a231883cbac4a8f386795729a58574103585637440597ea21939ecf6fd32530b616205884aea9bbd50f9f45e6139eeff
7
+ data.tar.gz: 623939be083087672ed80f20bc8a7641793ec19ded0191bb54f8eb3b72f0a535eeebdc1ae17c5072800198a19b49aef626bfd901264dfff4824a07466be777f0
checksums.yaml.gz.sig CHANGED
Binary file
data/README.adoc CHANGED
@@ -115,6 +115,7 @@ When creating a new logger, you can configure behavior via the following attribu
115
115
  * `formatter`: The formatter to use for formatting your log output. Default: `Cogger::Formatter::Color`. See the _Formatters_ section for more info.
116
116
  * `tags`: The global tags used for all log entries. _Must_ be an array of objects you wish to use for tagging purposes. Default: `[]`.
117
117
  * `datetime_format`: The global date/time format used for all `Time`, `Date`, and/or `DateTime` values in your log entries. Default: `%Y-%m-%dT%H:%M:%S.%L%:z`.
118
+ * `header`: Determines if your log files should start with a date/time header comment. Can be `true` or `false` and is identical to the `skip_header` functionality found in the {logger_link} class. Default: `true`. This is automatically disabled -- and can't be overwritten -- when using the JSON formatter since the JSON format doesn't support code comments.
118
119
  * `mode`: The binary mode which determines if your logs should be written in binary mode or not. Can be `true` or `false` and is identical to the `binmode` functionality found in the {logger_link} class. Default: `false`.
119
120
  * `age`: The rotation age of your log. This only applies when logging to a file. This is equivalent to the `shift_age` as found with the {logger_link} class. Default: `0`.
120
121
  * `size`: The rotation size of your log. This only applies when logging to a file. This is equivalent to the `shift_size` as found with the {logger_link} class. Default: `1,048,576` (i.e. 1 MB).
@@ -134,6 +135,7 @@ logger = Cogger.new id: :demo,
134
135
  formatter: :json,
135
136
  tags: %w[DEMO DB],
136
137
  datetime_format: "%Y-%m-%d",
138
+ header: false,
137
139
  mode: false,
138
140
  age: 5,
139
141
  size: 1_000,
@@ -236,8 +238,7 @@ To add multiple custom emojis, you can chain messages together when registering
236
238
 
237
239
  [source,ruby]
238
240
  ----
239
- Cogger.add_emoji(:tada, "🎉")
240
- .add_emoji :favorite, "❇️"
241
+ Cogger.add_emojis tada: "🎉", favorite: "❇️"
241
242
  ----
242
243
 
243
244
  If you always want to use the _same_ emoji, you could use the emoji formatter with a specific template:
@@ -616,7 +617,7 @@ This allows an emoji to be dynamically applied based on log level. You can add o
616
617
 
617
618
  [source,ruby]
618
619
  ----
619
- Cogger.add_emoji :warn, "🟡"
620
+ Cogger.add_emojis warn: "🟡"
620
621
  ----
621
622
 
622
623
  Once an alias is added/updated, it can be immediately applied via the template of your formatter. Example:
@@ -943,9 +944,7 @@ To add filters, use:
943
944
 
944
945
  [source,ruby]
945
946
  ----
946
- Cogger.add_filter(:login)
947
- .add_filter "email"
948
-
947
+ Cogger.add_filters :login, "email"
949
948
  Cogger.filters # #<Set: {:login, :email}>
950
949
  ----
951
950
 
@@ -953,7 +952,7 @@ Symbols and strings can be used interchangeably but are stored as symbols since
953
952
 
954
953
  [source,ruby]
955
954
  ----
956
- Cogger.add_filter :password
955
+ Cogger.add_filters :password
957
956
  logger = Cogger.new formatter: :json
958
957
  logger.info login: "jayne", password: "secret"
959
958
 
@@ -1186,8 +1185,9 @@ logger.inspect
1186
1185
  # @formatter=Cogger::Formatters::Emoji,
1187
1186
  # @datetime_format=\"%Y-%m-%dT%H:%M:%S.%L%:z\",
1188
1187
  # @tags=[],
1188
+ # @header=true,
1189
1189
  # @mode=false,
1190
- # @age=0,
1190
+ # @age=,
1191
1191
  # @size=1048576,
1192
1192
  # @suffix=\"%Y-%m-%d\",
1193
1193
  # @entry=Cogger::Entry,
data/cogger.gemspec CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |spec|
4
4
  spec.name = "cogger"
5
- spec.version = "1.4.0"
5
+ spec.version = "1.6.0"
6
6
  spec.authors = ["Brooke Kuhlmann"]
7
7
  spec.email = ["brooke@alchemists.io"]
8
8
  spec.homepage = "https://alchemists.io/projects/cogger"
@@ -25,7 +25,7 @@ Gem::Specification.new do |spec|
25
25
  spec.required_ruby_version = "~> 3.4"
26
26
  spec.add_dependency "core", "~> 2.0"
27
27
  spec.add_dependency "logger", "~> 1.7"
28
- spec.add_dependency "refinements", "~> 13.3"
28
+ spec.add_dependency "refinements", "~> 13.5"
29
29
  spec.add_dependency "tone", "~> 2.0"
30
30
  spec.add_dependency "zeitwerk", "~> 2.7"
31
31
 
@@ -13,6 +13,7 @@ module Cogger
13
13
  :formatter,
14
14
  :datetime_format,
15
15
  :tags,
16
+ :header,
16
17
  :mode,
17
18
  :age,
18
19
  :size,
@@ -29,6 +30,7 @@ module Cogger
29
30
  formatter: Formatters::Emoji.new,
30
31
  datetime_format: DATETIME_FORMAT,
31
32
  tags: Core::EMPTY_ARRAY,
33
+ header: true,
32
34
  mode: false,
33
35
  age: nil,
34
36
  size: 1_048_576,
@@ -49,6 +51,7 @@ module Cogger
49
51
  level:,
50
52
  formatter:,
51
53
  datetime_format:,
54
+ skip_header: skip_header?,
52
55
  binmode: mode,
53
56
  shift_period_suffix: suffix
54
57
  end
@@ -56,8 +59,12 @@ module Cogger
56
59
  def inspect
57
60
  "#<#{self.class} @id=#{id}, @io=#{io.class}, @level=#{level}, " \
58
61
  "@formatter=#{formatter.class}, @datetime_format=#{datetime_format.inspect}, " \
59
- "@tags=#{tags.inspect}, @mode=#{mode}, @age=#{age}, @size=#{size}, " \
62
+ "@tags=#{tags.inspect}, @header=#{header}, @mode=#{mode}, @age=#{age}, @size=#{size}, " \
60
63
  "@suffix=#{suffix.inspect}, @entry=#{entry}, @logger=#{logger}>"
61
64
  end
65
+
66
+ private
67
+
68
+ def skip_header? = formatter == :json || formatter.is_a?(Formatters::JSON) || !header
62
69
  end
63
70
  end
@@ -10,7 +10,7 @@ module Cogger
10
10
  ? # Flag, width, or precision.
11
11
  < # Reference start.
12
12
  (?<name>\w+) # Name.
13
- (?::[\w]+)? # Optional delimiter and directive.
13
+ (?::\w+)? # Optional delimiter and directive.
14
14
  > # Reference end.
15
15
  ? # Specifier.
16
16
  /x
@@ -1,10 +1,13 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require "refinements/hash"
3
4
  require "tone"
4
5
 
5
6
  module Cogger
6
7
  # Provides a global regsitry for global configuration.
7
8
  module Registry
9
+ using Refinements::Hash
10
+
8
11
  def self.extended descendant
9
12
  descendant.add_alias(:debug, :white)
10
13
  .add_alias(:info, :green)
@@ -12,12 +15,14 @@ module Cogger
12
15
  .add_alias(:error, :red)
13
16
  .add_alias(:fatal, :bold, :white, :on_red)
14
17
  .add_alias(:any, :dim, :bright_white)
15
- .add_emoji(:debug, "🔎")
16
- .add_emoji(:info, "🟢")
17
- .add_emoji(:warn, "⚠️")
18
- .add_emoji(:error, "🛑")
19
- .add_emoji(:fatal, "🔥")
20
- .add_emoji(:any, "⚫️")
18
+ .add_emojis(
19
+ debug: "🔎",
20
+ info: "🟢",
21
+ warn: "⚠️",
22
+ error: "🛑",
23
+ fatal: "🔥",
24
+ any: "⚫️"
25
+ )
21
26
  .add_formatter(:color, Cogger::Formatters::Color)
22
27
  .add_formatter(
23
28
  :detail,
@@ -42,10 +47,18 @@ module Cogger
42
47
  def aliases = color.aliases
43
48
 
44
49
  def add_emoji key, value
50
+ warn "`#{self.class}##{__method__}` is deprecated, use `#add_emojis` instead.",
51
+ category: :deprecated
52
+
45
53
  emojis[key.to_sym] = value
46
54
  self
47
55
  end
48
56
 
57
+ def add_emojis(**attributes)
58
+ emojis.merge! attributes.symbolize_keys!
59
+ self
60
+ end
61
+
49
62
  def get_emoji key
50
63
  emojis.fetch(key.to_sym) { fail KeyError, "Unregistered emoji: #{key}." }
51
64
  end
@@ -53,10 +66,18 @@ module Cogger
53
66
  def emojis = @emojis ||= {}
54
67
 
55
68
  def add_filter key
69
+ warn "`#{self.class}##{__method__}` is deprecated, use `#add_filters` instead.",
70
+ category: :deprecated
71
+
56
72
  filters.add key.to_sym
57
73
  self
58
74
  end
59
75
 
76
+ def add_filters(*keys)
77
+ filters.merge(keys.map(&:to_sym))
78
+ self
79
+ end
80
+
60
81
  def filters = @filters ||= Set.new
61
82
 
62
83
  def add_formatter key, formatter, template = nil
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cogger
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.0
4
+ version: 1.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brooke Kuhlmann
@@ -69,14 +69,14 @@ dependencies:
69
69
  requirements:
70
70
  - - "~>"
71
71
  - !ruby/object:Gem::Version
72
- version: '13.3'
72
+ version: '13.5'
73
73
  type: :runtime
74
74
  prerelease: false
75
75
  version_requirements: !ruby/object:Gem::Requirement
76
76
  requirements:
77
77
  - - "~>"
78
78
  - !ruby/object:Gem::Version
79
- version: '13.3'
79
+ version: '13.5'
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: tone
82
82
  requirement: !ruby/object:Gem::Requirement
@@ -175,7 +175,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
175
175
  - !ruby/object:Gem::Version
176
176
  version: '0'
177
177
  requirements: []
178
- rubygems_version: 3.7.1
178
+ rubygems_version: 3.7.2
179
179
  specification_version: 4
180
180
  summary: A customizable and feature rich logger.
181
181
  test_files: []
metadata.gz.sig CHANGED
Binary file