ltsv_logger_formatter 0.1.1 → 0.1.2

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: edc81d2d5c90063e71b14480d1a43394d7c38e20
4
- data.tar.gz: cee467dc1a33d63ab2ed8210d3d2fdcb206d83d9
3
+ metadata.gz: 5c41a0f98815517b88de7ad4bc73fded258b43d9
4
+ data.tar.gz: c9279c545852670f286b36e2726ebafb440f50d8
5
5
  SHA512:
6
- metadata.gz: 44c19e1f0bff240379c07158af0c8e2ecd86b7233fd9d7db44bf1a8c511cc81911b108a1fe2623c236d580f1d8857a602f4e39745fcf2f4fc73789565ce5c638
7
- data.tar.gz: a76cf9e7869c15d26cb245468cdbb8fe0e7bb49da6b75b7026e1cc99cc789d8d8ed8583c4974057574b0a40c394abeffbc61f6c255c8b5394b390c0565bd5a51
6
+ metadata.gz: 98bb9d37efa7cd04330d10a04e42d902d2d371bbe4a9d9be3bcd4f52ced75aa354654990b1e0c52cc86eef335f968ab56418c5e49b3a7a47ae4a4047627fc181
7
+ data.tar.gz: db00857be73b9296d63121ba352f4bc1506c672ee7866046e46ab90d795497a87e0ca295d33ca3d54fa4eaa7cef2919b219351f9aee31d034fb8ba9c006eba5d
data/README.md CHANGED
@@ -34,12 +34,10 @@ logger.info('progname') { { key: 'val' } }
34
34
  # => level:INFO time:2016-10-03T00:27:44.269682 progname:progname key:val
35
35
  ```
36
36
 
37
- You can pass String, Exception and Object that can respond to #to_hash.
37
+ You can pass Exception, Object that can respond to #to_hash.
38
+ If the Object cannot respond to #hash, then #to_s result is used with :message key.
38
39
 
39
40
  ```ruby
40
- logger.info 'string'
41
- # => level:INFO time:2016-10-03T00:37:39.950529 message:string
42
-
43
41
  begin
44
42
  raise RuntimeError.new('error')
45
43
  rescue => e
@@ -53,6 +51,13 @@ def object.to_hash
53
51
  end
54
52
  logger.info object
55
53
  # => level:INFO time:2016-10-03T00:43:52.458565 key:val
54
+
55
+ logger.info 'string'
56
+ # => level:INFO time:2016-10-03T00:37:39.950529 message:string
57
+ logger.info 100
58
+ # => level:INFO time:2016-10-03T00:37:39.950529 message:100
59
+ logger.info nil
60
+ # => level:INFO time:2016-10-03T00:37:39.950529 message:
56
61
  ```
57
62
 
58
63
  ### Datetime Format ###
@@ -27,12 +27,15 @@ class LtsvLoggerFormatter < ::Logger::Formatter
27
27
  # @param [String] severity
28
28
  # @param [Time] time
29
29
  # @param [String] progname
30
- # @param [Hash, String, Exception, Object] data Data for logging,
30
+ # @param [Hash, Exception, Object] data Data for logging,
31
+ # If data is Exception, then #message, #class and #backtrace is logged,
32
+ # or else if data can be respond to #to_hash, then #to_hash result is logged,
33
+ # or else #to_s result is logged with :message key.
31
34
  # Hash, String, Exception or Object respond_to :to_hash can be used.
32
35
  def call(severity, time, progname, data)
33
36
  log_data = { @severity_key => severity, @time_key => format_datetime(time) }
34
37
  if progname
35
- log_data.merge!( @progname_key => progname )
38
+ log_data.merge!(@progname_key => progname)
36
39
  end
37
40
  log_data.merge!(format_data(data))
38
41
  ::LTSV.dump(log_data) + "\n"
@@ -41,15 +44,9 @@ class LtsvLoggerFormatter < ::Logger::Formatter
41
44
  private
42
45
 
43
46
  def format_data(data)
44
- case data
45
- when Hash
46
- data
47
- when String
48
- { message: data }
49
- when Exception
50
- { message: data.message, class: data.class, backtrace: (data.backtrace || []).join("\\n") } # \n cannot be used in LTSV, so use \\n in backtrace.
51
- else
52
- data.to_hash
47
+ if data.is_a? Exception
48
+ return { message: data.message, class: data.class, backtrace: (data.backtrace || []).join("\\n") } # \n cannot be used in LTSV, so use \\n in backtrace.
53
49
  end
50
+ data.respond_to?(:to_hash) ? data.to_hash : { message: data.to_s }
54
51
  end
55
52
  end
@@ -1,5 +1,5 @@
1
1
  require 'logger'
2
2
 
3
3
  class LtsvLoggerFormatter < Logger::Formatter
4
- VERSION = '0.1.1'
4
+ VERSION = '0.1.2'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ltsv_logger_formatter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - ryu39
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-10-03 00:00:00.000000000 Z
11
+ date: 2016-10-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ltsv