logger 1.2.7.1 → 1.2.8.1
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 +7 -0
- data/lib/logger.rb +24 -15
- data/test/logger/test_logger.rb +33 -10
- metadata +7 -10
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: fca3ed305eb759ed28a0ea917d653feee81fc4d399a53a44e6649d8e8389defb
|
4
|
+
data.tar.gz: 90cef9d07cb58cb5049c1a869ae56ec609e0dfd1befcac6053b97602e11ee609
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: c2c96afb68a6e3a22e53673119f673bd6490d6d1c5c184da06677633648c0e86ce6c7eaacbb4dca55c4d3c800ea8d7708c55235a854987c98ed3f20feee185f9
|
7
|
+
data.tar.gz: c5e39c441722c99cd6fee091939303d22448a329543699b1deac011d3500f3cf939987ff6c4c64db1cff526a746e1e6050f9af801f057f3aca5181ea734599fa
|
data/lib/logger.rb
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
# logger.rb - simple logging utility
|
2
|
-
# Copyright (C) 2000-2003, 2005, 2008 NAKAMURA, Hiroshi <nahi@ruby-lang.org>.
|
2
|
+
# Copyright (C) 2000-2003, 2005, 2008, 2011 NAKAMURA, Hiroshi <nahi@ruby-lang.org>.
|
3
3
|
#
|
4
|
-
# Author:: NAKAMURA, Hiroshi <nakahiro@sarion.co.jp>
|
5
4
|
# Documentation:: NAKAMURA, Hiroshi and Gavin Sinclair
|
6
5
|
# License::
|
7
6
|
# You can redistribute it and/or modify it under the same terms of Ruby's
|
@@ -41,6 +40,21 @@ require 'monitor'
|
|
41
40
|
# want to know about the program's internal state, and would set them to
|
42
41
|
# +DEBUG+.
|
43
42
|
#
|
43
|
+
# **Note**: Logger does not escape or sanitize any messages passed to it.
|
44
|
+
# Developers should be aware of when potentially malicious data (user-input)
|
45
|
+
# is passed to Logger, and manually escape the untrusted data:
|
46
|
+
#
|
47
|
+
# logger.info("User-input: #{input.dump}")
|
48
|
+
# logger.info("User-input: %p" % input)
|
49
|
+
#
|
50
|
+
# You can use Logger#formatter= for escaping all data.
|
51
|
+
#
|
52
|
+
# original_formatter = Logger::Formatter.new
|
53
|
+
# logger.formatter = proc { |severity, datetime, progname, msg|
|
54
|
+
# original_formatter.call(severity, datetime, progname, msg.dump)
|
55
|
+
# }
|
56
|
+
# logger.info(input)
|
57
|
+
#
|
44
58
|
# === Example
|
45
59
|
#
|
46
60
|
# A simple example demonstrates the above explanation:
|
@@ -175,15 +189,8 @@ require 'monitor'
|
|
175
189
|
|
176
190
|
|
177
191
|
class Logger
|
178
|
-
VERSION = "1.2.
|
179
|
-
|
180
|
-
if name
|
181
|
-
name = name.chomp(",v")
|
182
|
-
else
|
183
|
-
name = File.basename(__FILE__)
|
184
|
-
end
|
185
|
-
rev ||= "v#{VERSION}"
|
186
|
-
ProgName = "#{name}/#{rev}"
|
192
|
+
VERSION = "1.2.8.1"
|
193
|
+
ProgName = "#{File.basename(__FILE__)}/#{VERSION}"
|
187
194
|
|
188
195
|
class Error < RuntimeError; end
|
189
196
|
class ShiftingError < Error; end # not used after 1.2.7. just for compat.
|
@@ -210,6 +217,8 @@ class Logger
|
|
210
217
|
@default_formatter.datetime_format = datetime_format
|
211
218
|
end
|
212
219
|
|
220
|
+
# Returns the date format (string passed to +strftime+) being used (it's set
|
221
|
+
# using datetime_format=)
|
213
222
|
def datetime_format
|
214
223
|
@default_formatter.datetime_format
|
215
224
|
end
|
@@ -290,8 +299,8 @@ class Logger
|
|
290
299
|
# +message+::
|
291
300
|
# The log message. A String or Exception.
|
292
301
|
# +progname+::
|
293
|
-
# Program name string. Can be omitted. Treated as a message if no
|
294
|
-
# +block+ are given.
|
302
|
+
# Program name string. Can be omitted. Treated as a message if no
|
303
|
+
# +message+ and +block+ are given.
|
295
304
|
# +block+::
|
296
305
|
# Can be omitted. Called to get a message string if +message+ is nil.
|
297
306
|
#
|
@@ -530,7 +539,7 @@ private
|
|
530
539
|
@mutex.synchronize do
|
531
540
|
@dev.close rescue nil
|
532
541
|
end
|
533
|
-
rescue Exception
|
542
|
+
rescue Exception
|
534
543
|
@dev.close rescue nil
|
535
544
|
end
|
536
545
|
end
|
@@ -593,7 +602,7 @@ private
|
|
593
602
|
if FileTest.exist?(age_file)
|
594
603
|
# try to avoid filename crash caused by Timestamp change.
|
595
604
|
idx = 0
|
596
|
-
# .99 can be
|
605
|
+
# .99 can be overridden; avoid too much file search with 'loop do'
|
597
606
|
while idx < 100
|
598
607
|
idx += 1
|
599
608
|
age_file = "#{@filename}.#{postfix}.#{idx}"
|
data/test/logger/test_logger.rb
CHANGED
@@ -311,10 +311,14 @@ class TestLogDevice < Test::Unit::TestCase
|
|
311
311
|
end
|
312
312
|
# create logfile whitch is already exist.
|
313
313
|
logdev = d(@filename)
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
314
|
+
begin
|
315
|
+
logdev.write('world')
|
316
|
+
logfile = File.read(@filename)
|
317
|
+
assert_equal(2, logfile.split(/\n/).size)
|
318
|
+
assert_match(/^helloworld$/, logfile)
|
319
|
+
ensure
|
320
|
+
logdev.close
|
321
|
+
end
|
318
322
|
end
|
319
323
|
|
320
324
|
def test_write
|
@@ -328,13 +332,19 @@ class TestLogDevice < Test::Unit::TestCase
|
|
328
332
|
assert_equal("msg2\n\n", msg)
|
329
333
|
#
|
330
334
|
logdev = d(LogExcnRaiser.new)
|
335
|
+
class << (stderr = '')
|
336
|
+
alias write <<
|
337
|
+
end
|
338
|
+
$stderr, stderr = stderr, $stderr
|
331
339
|
begin
|
332
340
|
assert_nothing_raised do
|
333
341
|
logdev.write('hello')
|
334
342
|
end
|
335
343
|
ensure
|
336
344
|
logdev.close
|
345
|
+
$stderr, stderr = stderr, $stderr
|
337
346
|
end
|
347
|
+
assert_equal "log writing failed. disk is full\n", stderr
|
338
348
|
end
|
339
349
|
|
340
350
|
def test_close
|
@@ -458,6 +468,7 @@ class TestLogDevice < Test::Unit::TestCase
|
|
458
468
|
assert(File.exist?(filename2))
|
459
469
|
assert(File.exist?(filename3))
|
460
470
|
ensure
|
471
|
+
logger.close if logger
|
461
472
|
[filename1, filename2, filename3].each do |filename|
|
462
473
|
File.unlink(filename) if File.exist?(filename)
|
463
474
|
end
|
@@ -485,20 +496,32 @@ class TestLoggerApplication < Test::Unit::TestCase
|
|
485
496
|
|
486
497
|
def test_start
|
487
498
|
@app.set_log(@filename)
|
488
|
-
|
489
|
-
|
490
|
-
|
499
|
+
begin
|
500
|
+
@app.level = Logger::UNKNOWN
|
501
|
+
@app.start # logs FATAL log
|
502
|
+
assert_equal(1, File.read(@filename).split(/\n/).size)
|
503
|
+
ensure
|
504
|
+
@app.logger.close
|
505
|
+
end
|
491
506
|
end
|
492
507
|
|
493
508
|
def test_logger
|
494
509
|
@app.level = Logger::WARN
|
495
510
|
@app.set_log(@filename)
|
496
|
-
|
511
|
+
begin
|
512
|
+
assert_equal(Logger::WARN, @app.logger.level)
|
513
|
+
ensure
|
514
|
+
@app.logger.close
|
515
|
+
end
|
497
516
|
@app.logger = logger = Logger.new(STDOUT)
|
498
517
|
assert_equal(logger, @app.logger)
|
499
518
|
assert_equal(Logger::WARN, @app.logger.level)
|
500
519
|
@app.log = @filename
|
501
|
-
|
502
|
-
|
520
|
+
begin
|
521
|
+
assert(logger != @app.logger)
|
522
|
+
assert_equal(Logger::WARN, @app.logger.level)
|
523
|
+
ensure
|
524
|
+
@app.logger.close
|
525
|
+
end
|
503
526
|
end
|
504
527
|
end
|
metadata
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: logger
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
5
|
-
prerelease:
|
4
|
+
version: 1.2.8.1
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- NAKAMURA, Hiroshi
|
@@ -10,7 +9,7 @@ authors:
|
|
10
9
|
autorequire:
|
11
10
|
bindir: bin
|
12
11
|
cert_chain: []
|
13
|
-
date: 2019-01-
|
12
|
+
date: 2019-01-19 00:00:00.000000000 Z
|
14
13
|
dependencies: []
|
15
14
|
description: Provides a simple logging utility for outputting messages.
|
16
15
|
email:
|
@@ -25,26 +24,24 @@ files:
|
|
25
24
|
homepage: https://github.com/ruby/logger
|
26
25
|
licenses:
|
27
26
|
- BSD-2-Clause
|
27
|
+
metadata: {}
|
28
28
|
post_install_message:
|
29
29
|
rdoc_options: []
|
30
30
|
require_paths:
|
31
31
|
- lib
|
32
32
|
required_ruby_version: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
33
|
requirements:
|
35
|
-
- -
|
34
|
+
- - ">="
|
36
35
|
- !ruby/object:Gem::Version
|
37
36
|
version: '0'
|
38
37
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
39
|
-
none: false
|
40
38
|
requirements:
|
41
|
-
- -
|
39
|
+
- - ">="
|
42
40
|
- !ruby/object:Gem::Version
|
43
41
|
version: '0'
|
44
42
|
requirements: []
|
45
|
-
|
46
|
-
rubygems_version: 1.8.23.2
|
43
|
+
rubygems_version: 3.0.2
|
47
44
|
signing_key:
|
48
|
-
specification_version:
|
45
|
+
specification_version: 4
|
49
46
|
summary: Provides a simple logging utility for outputting messages.
|
50
47
|
test_files: []
|