logger 1.6.1 → 1.6.5

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: c6fa7c02974cf7c275bfa19e6225f8b06bdbc76d49f78e6bf75e351dfb14c1e3
4
- data.tar.gz: d299b1c26a5389316c89a7899359f5d8d1570dae24428bce6c43d9832adc7dc2
3
+ metadata.gz: 46ba87e952de11303f4d8a1801c62441825513ed53de7ab20ec75d21b9524cdb
4
+ data.tar.gz: 985b136ab6b4027a0c28b8980374fc3beed8f3df3b31ee02fe57c0de5ab3cb56
5
5
  SHA512:
6
- metadata.gz: 9b19a5196c89b0c184c5c2ab4a77d5085d26ec6f04c272b7bbd0085beaeaf7d758e9cb0c728c486e07f4498209e70327420ff66f218b4f6baec7d59fe7ec0c44
7
- data.tar.gz: 1fc54467c631ea277b044c9d2b48895f3d2ed684eec2725f3aa1e475c551e1cfb6420fe9540a5eddf0e597794f74ee8c669c506faad44af5ddb8075cb7c8826e
6
+ metadata.gz: c3cb3e144eab09fddc21017774faa4b4f4260ddba3bc8d1b0244654c3c2bf13e610debfd3cef36e9bb83b31379dc5853384accadb586f3415deb090ac0fc1fdb
7
+ data.tar.gz: 82b5a284490100bee206a12e7030e3fb6287aca0ce8196e7ccc0673445b9b713df77438514b36f2e711523d5e2d1bdb897b83811ea752b3bbe26940efacee0eb
@@ -0,0 +1,6 @@
1
+ version: 2
2
+ updates:
3
+ - package-ecosystem: 'github-actions'
4
+ directory: '/'
5
+ schedule:
6
+ interval: 'weekly'
@@ -0,0 +1,46 @@
1
+ name: Publish gem to rubygems.org
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - 'v*'
7
+
8
+ permissions:
9
+ contents: read
10
+
11
+ jobs:
12
+ push:
13
+ if: github.repository == 'ruby/logger'
14
+ runs-on: ubuntu-latest
15
+
16
+ environment:
17
+ name: rubygems.org
18
+ url: https://rubygems.org/gems/logger
19
+
20
+ permissions:
21
+ contents: write
22
+ id-token: write
23
+
24
+ steps:
25
+ - name: Harden Runner
26
+ uses: step-security/harden-runner@0080882f6c36860b6ba35c610c98ce87d4e2f26f # v2.10.2
27
+ with:
28
+ egress-policy: audit
29
+
30
+ - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4
31
+
32
+ - name: Set up Ruby
33
+ uses: ruby/setup-ruby@a6e6f86333f0a2523ece813039b8b4be04560854 # v1.190.0
34
+ with:
35
+ bundler-cache: true
36
+ ruby-version: ruby
37
+
38
+ - name: Publish to RubyGems
39
+ uses: rubygems/release-gem@a25424ba2ba8b387abc8ef40807c2c85b96cbe32 # v1.1.1
40
+
41
+ - name: Create GitHub release
42
+ run: |
43
+ tag_name="$(git describe --tags --abbrev=0)"
44
+ gh release create "${tag_name}" --verify-tag --generate-notes
45
+ env:
46
+ GITHUB_TOKEN: ${{ secrets.MATZBOT_GITHUB_WORKFLOW_TOKEN }}
@@ -0,0 +1,32 @@
1
+ name: test
2
+
3
+ on: [push, pull_request]
4
+
5
+ jobs:
6
+ ruby-versions:
7
+ uses: ruby/actions/.github/workflows/ruby_versions.yml@master
8
+ with:
9
+ engine: cruby
10
+ min_version: 2.5
11
+
12
+ test:
13
+ needs: ruby-versions
14
+ name: build (${{ matrix.ruby }} / ${{ matrix.os }})
15
+ strategy:
16
+ matrix:
17
+ ruby: ${{ fromJson(needs.ruby-versions.outputs.versions) }}
18
+ os: [ ubuntu-latest, macos-latest, windows-latest ]
19
+ exclude:
20
+ - ruby: 2.5
21
+ os: macos-latest
22
+ runs-on: ${{ matrix.os }}
23
+ steps:
24
+ - uses: actions/checkout@v4
25
+ - name: Set up Ruby
26
+ uses: ruby/setup-ruby@v1
27
+ with:
28
+ ruby-version: ${{ matrix.ruby }}
29
+ - name: Install dependencies
30
+ run: bundle install
31
+ - name: Run test
32
+ run: rake test
data/.gitignore ADDED
@@ -0,0 +1,11 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /_yardoc/
4
+ /coverage/
5
+ /doc/
6
+ /pkg/
7
+ /spec/reports/
8
+ /tmp/
9
+ Gemfile.lock
10
+ /html/
11
+ /vendor/
data/BSDL ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (C) 1993-2013 Yukihiro Matsumoto. All rights reserved.
2
+
3
+ Redistribution and use in source and binary forms, with or without
4
+ modification, are permitted provided that the following conditions
5
+ are met:
6
+ 1. Redistributions of source code must retain the above copyright
7
+ notice, this list of conditions and the following disclaimer.
8
+ 2. Redistributions in binary form must reproduce the above copyright
9
+ notice, this list of conditions and the following disclaimer in the
10
+ documentation and/or other materials provided with the distribution.
11
+
12
+ THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
13
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
14
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
15
+ ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
16
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
17
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
18
+ OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
19
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
20
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
21
+ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
22
+ SUCH DAMAGE.
data/COPYING ADDED
@@ -0,0 +1,56 @@
1
+ Ruby is copyrighted free software by Yukihiro Matsumoto <matz@netlab.jp>.
2
+ You can redistribute it and/or modify it under either the terms of the
3
+ 2-clause BSDL (see the file BSDL), or the conditions below:
4
+
5
+ 1. You may make and give away verbatim copies of the source form of the
6
+ software without restriction, provided that you duplicate all of the
7
+ original copyright notices and associated disclaimers.
8
+
9
+ 2. You may modify your copy of the software in any way, provided that
10
+ you do at least ONE of the following:
11
+
12
+ a. place your modifications in the Public Domain or otherwise
13
+ make them Freely Available, such as by posting said
14
+ modifications to Usenet or an equivalent medium, or by allowing
15
+ the author to include your modifications in the software.
16
+
17
+ b. use the modified software only within your corporation or
18
+ organization.
19
+
20
+ c. give non-standard binaries non-standard names, with
21
+ instructions on where to get the original software distribution.
22
+
23
+ d. make other distribution arrangements with the author.
24
+
25
+ 3. You may distribute the software in object code or binary form,
26
+ provided that you do at least ONE of the following:
27
+
28
+ a. distribute the binaries and library files of the software,
29
+ together with instructions (in the manual page or equivalent)
30
+ on where to get the original distribution.
31
+
32
+ b. accompany the distribution with the machine-readable source of
33
+ the software.
34
+
35
+ c. give non-standard binaries non-standard names, with
36
+ instructions on where to get the original software distribution.
37
+
38
+ d. make other distribution arrangements with the author.
39
+
40
+ 4. You may modify and include the part of the software into any other
41
+ software (possibly commercial). But some files in the distribution
42
+ are not written by the author, so that they are not under these terms.
43
+
44
+ For the list of those files and their copying conditions, see the
45
+ file LEGAL.
46
+
47
+ 5. The scripts and library files supplied as input to or produced as
48
+ output from the software do not automatically fall under the
49
+ copyright of the software, but belong to whomever generated them,
50
+ and may be sold commercially, and may be aggregated with this
51
+ software.
52
+
53
+ 6. THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
54
+ IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
55
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
56
+ PURPOSE.
data/Gemfile ADDED
@@ -0,0 +1,10 @@
1
+ source "https://rubygems.org"
2
+
3
+ gemspec
4
+
5
+ group :development do
6
+ gem "bundler"
7
+ gem "rake"
8
+ gem "test-unit"
9
+ gem "test-unit-ruby-core"
10
+ end
data/README.md ADDED
@@ -0,0 +1,104 @@
1
+ # Logger
2
+
3
+ Logger is a simple but powerful logging utility to output messages in your Ruby program.
4
+
5
+ Logger has the following features:
6
+
7
+ * Print messages to different levels such as `info` and `error`
8
+ * Auto-rolling of log files
9
+ * Setting the format of log messages
10
+ * Specifying a program name in conjunction with the message
11
+
12
+ ## Installation
13
+
14
+ Add this line to your application's Gemfile:
15
+
16
+ ```ruby
17
+ gem 'logger'
18
+ ```
19
+
20
+ And then execute:
21
+
22
+ $ bundle
23
+
24
+ Or install it yourself as:
25
+
26
+ $ gem install logger
27
+
28
+ ## Usage
29
+
30
+ ### Simple Example
31
+
32
+ ```ruby
33
+ require 'logger'
34
+
35
+ # Create a Logger that prints to STDOUT
36
+ log = Logger.new(STDOUT)
37
+ log.debug("Created Logger")
38
+
39
+ log.info("Program finished")
40
+
41
+ # Create a Logger that prints to STDERR
42
+ error_log = Logger.new(STDERR)
43
+ error_log = error_log.error("fatal error")
44
+ ```
45
+
46
+ ## Development
47
+
48
+ After checking out the repo, run the following to install dependencies.
49
+
50
+ ```
51
+ $ bin/setup
52
+ ```
53
+
54
+ Then, run the tests as:
55
+
56
+ ```
57
+ $ rake test
58
+ ```
59
+
60
+ To install this gem onto your local machine, run
61
+
62
+ ```
63
+ $ rake install
64
+ ```
65
+
66
+ To release a new version, update the version number in `lib/logger/version.rb`, and then run
67
+
68
+ ```
69
+ $ rake release
70
+ ```
71
+
72
+ which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
73
+
74
+ ## Advanced Development
75
+
76
+ ### Run tests of a specific file
77
+
78
+ ```
79
+ $ ruby test/logger/test_logger.rb
80
+ ```
81
+
82
+ ### Run tests filtering test methods by a name
83
+
84
+ `--name` option is available as:
85
+
86
+ ```
87
+ $ ruby test/logger/test_logger.rb --name test_lshift
88
+ ```
89
+
90
+ ### Publish documents to GitHub Pages
91
+
92
+ ```
93
+ $ rake gh-pages
94
+ ```
95
+
96
+ Then, git commit and push the generated HTMLs onto `gh-pages` branch.
97
+
98
+ ## Contributing
99
+
100
+ Bug reports and pull requests are welcome on GitHub at https://github.com/ruby/logger.
101
+
102
+ ## License
103
+
104
+ The gem is available as open source under the terms of the [BSD-2-Clause](BSDL).
data/Rakefile ADDED
@@ -0,0 +1,30 @@
1
+ begin
2
+ require "bundler/gem_tasks"
3
+ rescue LoadError
4
+ end
5
+
6
+ require "rake/testtask"
7
+ Rake::TestTask.new(:test) do |t|
8
+ t.libs << "test/lib"
9
+ t.ruby_opts << "-rhelper"
10
+ t.test_files = FileList["test/**/test_*.rb"]
11
+ end
12
+
13
+ require "rdoc/task"
14
+ RDoc::Task.new do |doc|
15
+ doc.main = "README.md"
16
+ doc.title = "Logger -- Ruby Standard Logger"
17
+ doc.rdoc_files = FileList.new %w[README.md lib BSDL COPYING]
18
+ doc.rdoc_dir = "html"
19
+ end
20
+
21
+ task "gh-pages" => :rdoc do
22
+ %x[git checkout gh-pages]
23
+ require "fileutils"
24
+ FileUtils.rm_rf "/tmp/html"
25
+ FileUtils.mv "html", "/tmp"
26
+ FileUtils.rm_rf "*"
27
+ FileUtils.cp_r Dir.glob("/tmp/html/*"), "."
28
+ end
29
+
30
+ task :default => :test
data/bin/console ADDED
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "logger"
5
+
6
+ # You can add fixtures and/or initialization code here to make experimenting
7
+ # with your gem easier. You can also use a different console, if you like.
8
+
9
+ # (If you use this, don't forget to add pry to your Gemfile!)
10
+ # require "pry"
11
+ # Pry.start
12
+
13
+ require "irb"
14
+ IRB.start(__FILE__)
data/bin/setup ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+ set -vx
5
+
6
+ bundle install
7
+
8
+ # Do any other automated setup that you need to do here
@@ -30,29 +30,13 @@ class Logger
30
30
  end
31
31
 
32
32
  def write(message)
33
- begin
33
+ handle_write_errors("writing") do
34
34
  synchronize do
35
35
  if @shift_age and @dev.respond_to?(:stat)
36
- begin
37
- check_shift_log
38
- rescue *@reraise_write_errors
39
- raise
40
- rescue
41
- warn("log shifting failed. #{$!}")
42
- end
43
- end
44
- begin
45
- @dev.write(message)
46
- rescue *@reraise_write_errors
47
- raise
48
- rescue
49
- warn("log writing failed. #{$!}")
36
+ handle_write_errors("shifting") {check_shift_log}
50
37
  end
38
+ handle_write_errors("writing") {@dev.write(message)}
51
39
  end
52
- rescue *@reraise_write_errors
53
- raise
54
- rescue Exception => ignored
55
- warn("log writing failed. #{ignored}")
56
40
  end
57
41
  end
58
42
 
@@ -83,6 +67,17 @@ class Logger
83
67
 
84
68
  private
85
69
 
70
+ # :stopdoc:
71
+
72
+ MODE = File::WRONLY | File::APPEND
73
+ # temporary workaround for TruffleRuby
74
+ if File.const_defined? :SHARE_DELETE
75
+ MODE_TO_OPEN = MODE | File::SHARE_DELETE | File::BINARY
76
+ else
77
+ MODE_TO_OPEN = MODE | File::BINARY
78
+ end
79
+ MODE_TO_CREATE = MODE_TO_OPEN | File::CREAT | File::EXCL
80
+
86
81
  def set_dev(log)
87
82
  if log.respond_to?(:write) and log.respond_to?(:close)
88
83
  @dev = log
@@ -93,34 +88,61 @@ class Logger
93
88
  end
94
89
  else
95
90
  @dev = open_logfile(log)
96
- @dev.sync = true
97
- @dev.binmode if @binmode
98
91
  @filename = log
99
92
  end
100
93
  end
101
94
 
95
+ if MODE_TO_OPEN == MODE
96
+ def fixup_mode(dev, filename)
97
+ dev
98
+ end
99
+ else
100
+ def fixup_mode(dev, filename)
101
+ return dev if @binmode
102
+ dev.autoclose = false
103
+ old_dev = dev
104
+ dev = File.new(dev.fileno, mode: MODE, path: filename)
105
+ old_dev.close
106
+ PathAttr.set_path(dev, filename) if defined?(PathAttr)
107
+ dev
108
+ end
109
+ end
110
+
102
111
  def open_logfile(filename)
103
112
  begin
104
- File.open(filename, (File::WRONLY | File::APPEND))
113
+ dev = File.open(filename, MODE_TO_OPEN)
105
114
  rescue Errno::ENOENT
106
115
  create_logfile(filename)
116
+ else
117
+ dev = fixup_mode(dev, filename)
118
+ dev.sync = true
119
+ dev.binmode if @binmode
120
+ dev
107
121
  end
108
122
  end
109
123
 
110
124
  def create_logfile(filename)
111
125
  begin
112
- logdev = File.open(filename, (File::WRONLY | File::APPEND | File::CREAT | File::EXCL))
126
+ logdev = File.open(filename, MODE_TO_CREATE)
113
127
  logdev.flock(File::LOCK_EX)
128
+ logdev = fixup_mode(logdev, filename)
114
129
  logdev.sync = true
115
130
  logdev.binmode if @binmode
116
131
  add_log_header(logdev)
117
132
  logdev.flock(File::LOCK_UN)
133
+ logdev
118
134
  rescue Errno::EEXIST
119
135
  # file is created by another process
120
- logdev = open_logfile(filename)
121
- logdev.sync = true
136
+ open_logfile(filename)
122
137
  end
123
- logdev
138
+ end
139
+
140
+ def handle_write_errors(mesg)
141
+ yield
142
+ rescue *@reraise_write_errors
143
+ raise
144
+ rescue
145
+ warn("log #{mesg} failed. #{$!}")
124
146
  end
125
147
 
126
148
  def add_log_header(file)
@@ -144,40 +166,33 @@ class Logger
144
166
  end
145
167
  end
146
168
 
147
- if /mswin|mingw|cygwin/ =~ RbConfig::CONFIG['host_os']
148
- def lock_shift_log
149
- yield
150
- end
151
- else
152
- def lock_shift_log
153
- retry_limit = 8
154
- retry_sleep = 0.1
155
- begin
156
- File.open(@filename, File::WRONLY | File::APPEND) do |lock|
157
- lock.flock(File::LOCK_EX) # inter-process locking. will be unlocked at closing file
158
- if File.identical?(@filename, lock) and File.identical?(lock, @dev)
159
- yield # log shifting
160
- else
161
- # log shifted by another process (i-node before locking and i-node after locking are different)
162
- @dev.close rescue nil
163
- @dev = open_logfile(@filename)
164
- @dev.sync = true
165
- end
166
- end
167
- rescue Errno::ENOENT
168
- # @filename file would not exist right after #rename and before #create_logfile
169
- if retry_limit <= 0
170
- warn("log rotation inter-process lock failed. #{$!}")
169
+ def lock_shift_log
170
+ retry_limit = 8
171
+ retry_sleep = 0.1
172
+ begin
173
+ File.open(@filename, MODE_TO_OPEN) do |lock|
174
+ lock.flock(File::LOCK_EX) # inter-process locking. will be unlocked at closing file
175
+ if File.identical?(@filename, lock) and File.identical?(lock, @dev)
176
+ yield # log shifting
171
177
  else
172
- sleep retry_sleep
173
- retry_limit -= 1
174
- retry_sleep *= 2
175
- retry
178
+ # log shifted by another process (i-node before locking and i-node after locking are different)
179
+ @dev.close rescue nil
180
+ @dev = open_logfile(@filename)
176
181
  end
177
182
  end
178
- rescue
179
- warn("log rotation inter-process lock failed. #{$!}")
183
+ rescue Errno::ENOENT
184
+ # @filename file would not exist right after #rename and before #create_logfile
185
+ if retry_limit <= 0
186
+ warn("log rotation inter-process lock failed. #{$!}")
187
+ else
188
+ sleep retry_sleep
189
+ retry_limit -= 1
190
+ retry_sleep *= 2
191
+ retry
192
+ end
180
193
  end
194
+ rescue
195
+ warn("log rotation inter-process lock failed. #{$!}")
181
196
  end
182
197
 
183
198
  def shift_log_age
@@ -212,3 +227,15 @@ class Logger
212
227
  end
213
228
  end
214
229
  end
230
+
231
+ File.open(__FILE__) do |f|
232
+ File.new(f.fileno, autoclose: false, path: "").path
233
+ rescue IOError
234
+ module PathAttr # :nodoc:
235
+ attr_reader :path
236
+
237
+ def self.set_path(file, path)
238
+ file.extend(self).instance_variable_set(:@path, path)
239
+ end
240
+ end
241
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class Logger
4
- VERSION = "1.6.1"
4
+ VERSION = "1.6.5"
5
5
  end
data/lib/logger.rb CHANGED
@@ -381,7 +381,7 @@ class Logger
381
381
 
382
382
  # Logging severity threshold (e.g. <tt>Logger::INFO</tt>).
383
383
  def level
384
- level_override[Fiber.current] || @level
384
+ level_override[level_key] || @level
385
385
  end
386
386
 
387
387
  # Sets the log level; returns +severity+.
@@ -406,14 +406,14 @@ class Logger
406
406
  # logger.debug { "Hello" }
407
407
  # end
408
408
  def with_level(severity)
409
- prev, level_override[Fiber.current] = level, Severity.coerce(severity)
409
+ prev, level_override[level_key] = level, Severity.coerce(severity)
410
410
  begin
411
411
  yield
412
412
  ensure
413
413
  if prev
414
- level_override[Fiber.current] = prev
414
+ level_override[level_key] = prev
415
415
  else
416
- level_override.delete(Fiber.current)
416
+ level_override.delete(level_key)
417
417
  end
418
418
  end
419
419
  end
@@ -751,6 +751,10 @@ private
751
751
  @level_override ||= {}
752
752
  end
753
753
 
754
+ def level_key
755
+ Fiber.current
756
+ end
757
+
754
758
  def format_message(severity, datetime, progname, msg)
755
759
  (@formatter || @default_formatter).call(severity, datetime, progname, msg)
756
760
  end
data/logger.gemspec CHANGED
@@ -15,8 +15,14 @@ Gem::Specification.new do |spec|
15
15
  spec.homepage = "https://github.com/ruby/logger"
16
16
  spec.licenses = ["Ruby", "BSD-2-Clause"]
17
17
 
18
- spec.files = Dir.glob("lib/**/*.rb") + ["logger.gemspec"]
18
+ # Specify which files should be added to the gem when it is released.
19
+ # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
20
+ spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
21
+ `git ls-files -z 2>#{IO::NULL}`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
22
+ end
19
23
  spec.require_paths = ["lib"]
20
24
 
21
25
  spec.required_ruby_version = ">= 2.5.0"
26
+
27
+ spec.metadata["changelog_uri"] = spec.homepage + "/releases"
22
28
  end
metadata CHANGED
@@ -1,14 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logger
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.1
4
+ version: 1.6.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Naotoshi Seo
8
8
  - SHIBATA Hiroshi
9
+ autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2024-09-02 00:00:00.000000000 Z
12
+ date: 2025-01-10 00:00:00.000000000 Z
12
13
  dependencies: []
13
14
  description: Provides a simple logging utility for outputting messages.
14
15
  email:
@@ -18,6 +19,17 @@ executables: []
18
19
  extensions: []
19
20
  extra_rdoc_files: []
20
21
  files:
22
+ - ".github/dependabot.yml"
23
+ - ".github/workflows/push_gem.yml"
24
+ - ".github/workflows/test.yml"
25
+ - ".gitignore"
26
+ - BSDL
27
+ - COPYING
28
+ - Gemfile
29
+ - README.md
30
+ - Rakefile
31
+ - bin/console
32
+ - bin/setup
21
33
  - lib/logger.rb
22
34
  - lib/logger/errors.rb
23
35
  - lib/logger/formatter.rb
@@ -30,7 +42,9 @@ homepage: https://github.com/ruby/logger
30
42
  licenses:
31
43
  - Ruby
32
44
  - BSD-2-Clause
33
- metadata: {}
45
+ metadata:
46
+ changelog_uri: https://github.com/ruby/logger/releases
47
+ post_install_message:
34
48
  rdoc_options: []
35
49
  require_paths:
36
50
  - lib
@@ -45,7 +59,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
45
59
  - !ruby/object:Gem::Version
46
60
  version: '0'
47
61
  requirements: []
48
- rubygems_version: 3.6.0.dev
62
+ rubygems_version: 3.5.11
63
+ signing_key:
49
64
  specification_version: 4
50
65
  summary: Provides a simple logging utility for outputting messages.
51
66
  test_files: []