logfoo 0.2.0 → 0.2.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 090c89addea5e5f294a83fc7118fc5f05eb7fcc2
4
- data.tar.gz: e98d25ed50c2f2d443b3493b923924316b485620
3
+ metadata.gz: d2ab2a6961e98080ef4549bd79f9eeacc33b3ae6
4
+ data.tar.gz: 6612af471af0fd75cc61fc39f77d26c29ff354f6
5
5
  SHA512:
6
- metadata.gz: b25cfaf625776d1424efdb87e0da631657633bd56d228dac97648b3466498bebff63cb8e1b26e6b3e2d89fc7119ba14df08444ebc66b6bdb55745fddb0958e3f
7
- data.tar.gz: 2eb571f9dc9be891d7aaaaf972f4a2e5447c457a5c1787c0ca8989a196df17a5ef2c71789196d1930a56596e68758c30f606a3a9bbdb25b6c87a714462825d33
6
+ metadata.gz: 9a69c4988db2c8ad3865bb68da9689f1387df38c781e2edcaafb182f71aa18b2bcb4aefc33a62baf0c63a60040a7c14f7c2b859cc6e068b98d04fb6704443231
7
+ data.tar.gz: d0e105c5aba05d840e4b227cab173f6446f5f2e0d637adfe307c9dc8d071b64a1bdf5db45568c8a13d26680c79fd9574b269c49e37fe1b1256896d7f949a32bb
data/lib/logfoo.rb CHANGED
@@ -30,7 +30,6 @@ end
30
30
  formatters/logfmt_formatter
31
31
  formatters/simple_formatter
32
32
  appenders/io_appender
33
- exception_handlers/stderr_exception_handler
34
33
  measure
35
34
  app
36
35
  context
data/lib/logfoo/app.rb CHANGED
@@ -52,43 +52,31 @@ module Logfoo
52
52
  break
53
53
  when :boom
54
54
  raise IGNORE_ME_ERROR
55
- when ErrLine
56
- App._handle_exception(line)
57
55
  else
58
56
  App._append(line)
59
57
  end
60
58
  end
61
59
  rescue Exception => ex
62
60
  line = ErrLine.build(logger_name: self.class, exception: ex)
63
- App._handle_exception(line)
61
+ App._append(line)
64
62
  retry
65
63
  end
66
64
  end ; end
67
65
  end
68
66
 
69
67
  class App ; class << self
70
- @@appenders = []
71
- @@exception_handlers = []
68
+ @@appenders = []
72
69
 
73
70
  def appenders(*fn)
74
71
  @@appenders = fn.flatten
75
72
  end
76
73
 
77
- def exception_handlers(*fn)
78
- @@exception_handlers = fn.flatten
79
- end
80
-
81
- def _handle_exception(entry)
82
- @@exception_handlers.each{|fn| fn.call(entry) }
83
- end
84
-
85
74
  def _append(entry)
86
75
  @@appenders.each{|fn| fn.call(entry) }
87
76
  end
88
77
 
89
78
  def _reset!
90
79
  appenders IoAppender.new
91
- exception_handlers StderrExceptionHanlder.new
92
80
  end
93
81
  end ; end
94
82
 
@@ -1,21 +1,41 @@
1
1
  module Logfoo ; class IoAppender
2
- def initialize(io = nil, formatter = nil)
3
- @io = io || STDOUT
4
2
 
5
- if @io.respond_to?(:sync=)
6
- @io.sync = true
7
- end
3
+ def initialize(out: nil, err: nil, formatter: nil)
4
+ @stdout = out || STDOUT
5
+ @stderr = err || STDERR
6
+ @formatter = formatter || (tty? ? SimpleFormatter.new : LogfmtFormatter.new)
8
7
 
9
- is_tty = @io.respond_to?(:tty?) && @io.tty?
10
- @formatter = formatter || (is_tty ? SimpleFormatter.new : LogfmtFormatter.new)
8
+ sync!
11
9
  end
12
10
 
13
11
  def call(entry)
14
- write @formatter.call(entry)
12
+ io =
13
+ case entry
14
+ when ErrLine
15
+ @stderr
16
+ else
17
+ @stdout
18
+ end
19
+
20
+ io.write @formatter.call(entry)
21
+ io.flush
15
22
  end
16
23
 
17
- def write(body)
18
- @io.write body
19
- @io.flush
24
+ def tty?
25
+ [@stdout, @stderr].inject(true) do |memo, io|
26
+ if memo
27
+ memo = io.respond_to?(:tty?) && io.tty?
28
+ end
29
+ memo
30
+ end
20
31
  end
32
+
33
+ def sync!
34
+ [@stdout, @stderr].each do |io|
35
+ if io.respond_to?(:sync=)
36
+ io.sync = true
37
+ end
38
+ end
39
+ end
40
+
21
41
  end ; end
@@ -12,7 +12,7 @@ module Logfoo ; class LogfmtFormatter
12
12
  when ErrLine, LogLine
13
13
  format_line(line)
14
14
  else
15
- "#{remove_nl entry.to_s}\n"
15
+ "#{remove_nl line.to_s}\n"
16
16
  end
17
17
  end
18
18
 
@@ -1,3 +1,3 @@
1
1
  module Logfoo
2
- VERSION = '0.2.0'
2
+ VERSION = '0.2.1'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logfoo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dmitry Galinsky
@@ -100,7 +100,6 @@ files:
100
100
  - lib/logfoo/appenders/io_appender.rb
101
101
  - lib/logfoo/context.rb
102
102
  - lib/logfoo/entries.rb
103
- - lib/logfoo/exception_handlers/stderr_exception_handler.rb
104
103
  - lib/logfoo/formatters/logfmt_formatter.rb
105
104
  - lib/logfoo/formatters/simple_formatter.rb
106
105
  - lib/logfoo/integrations/hutch.rb
@@ -1,9 +0,0 @@
1
- module Logfoo ; class StderrExceptionHanlder
2
- def initialize(appender = nil)
3
- @appender = appender || IoAppender.new(STDERR)
4
- end
5
-
6
- def call(entry)
7
- @appender.call entry
8
- end
9
- end ; end