ltsv_logger_formatter 0.1.1 → 0.1.2

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
  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