structured_logger 0.1.0 → 0.2.0
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 +4 -4
- data/README.md +12 -0
- data/lib/structured_logger.rb +31 -32
- data/lib/structured_logger/version.rb +1 -1
- data/structured_logger.gemspec +1 -0
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6ebc7ffd6ba59caa43ceafbb4bbfbdd9e5024ac2
|
4
|
+
data.tar.gz: 3dfecb3f06b04ca4a363016857a9383dcb378a09
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e712c962c7cf95483f6b134be48790053dc8b57d1a473d5fcb5a36e4f5539aca0fcffe498e079dad5b8a11bf4f1ec482b088219fc243a6876a74e2e749eba589
|
7
|
+
data.tar.gz: c928328bedea1f3cd87960e6f9e1f9ee36b927bd08b4711d3df70291b912d77c164bcc1a985cbd26db8718ade6e9bb8435aeb4e6a0866af9f8787b8be73ea7aa
|
data/README.md
CHANGED
@@ -50,6 +50,18 @@ l.error("Something happend")
|
|
50
50
|
#=> E, [2015-08-25T06:43:47.798889 #23623] ERROR -- : Something happend
|
51
51
|
```
|
52
52
|
|
53
|
+
Also we can use it with `ActiveSupport::TaggedLogging`.
|
54
|
+
|
55
|
+
```ruby
|
56
|
+
l = ActiveSupport::TaggedLogging.new(StructuredLogger.new(STDOUT))
|
57
|
+
l.tagged(:crawler) do
|
58
|
+
l.tagged(:downloading) do
|
59
|
+
l.warn("malformed file format", path: downloaded_path.to_s)
|
60
|
+
end
|
61
|
+
end
|
62
|
+
#=> [crawler] [downloading] malformed file format: path="/opt/app/tmp/1234.bin"
|
63
|
+
```
|
64
|
+
|
53
65
|
## Development
|
54
66
|
|
55
67
|
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake false` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
data/lib/structured_logger.rb
CHANGED
@@ -6,16 +6,15 @@ class StructuredLogger
|
|
6
6
|
include Logger::Severity
|
7
7
|
autoload :VERSION, "structured_logger/version"
|
8
8
|
|
9
|
+
attr_accessor :progname
|
9
10
|
attr_accessor :formatter
|
10
11
|
|
11
|
-
def self.severity_name(severity)
|
12
|
-
return Logger::SEV_LABEL[severity] || "ANY"
|
13
|
-
end
|
14
|
-
|
15
12
|
def initialize(io)
|
16
13
|
@logger = Logger.new(io)
|
14
|
+
@progname = nil
|
17
15
|
@formatter = nil
|
18
|
-
@default_formatter = Formatter.new
|
16
|
+
@default_formatter = Logger::Formatter.new
|
17
|
+
@argument_formatter = ArgumentFormatter.new
|
19
18
|
end
|
20
19
|
|
21
20
|
def_delegators :@logger,
|
@@ -49,42 +48,42 @@ class StructuredLogger
|
|
49
48
|
if level > severity
|
50
49
|
return
|
51
50
|
end
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
51
|
+
block_result = block_given? ? yield : nil
|
52
|
+
s_severity = format_severity(severity)
|
53
|
+
time = Time.now
|
54
|
+
message = @argument_formatter.call(severity: s_severity,
|
55
|
+
time: time,
|
56
|
+
progname: @progname,
|
57
|
+
args: args,
|
58
|
+
block_result: block_result)
|
59
|
+
s = (@formatter || @default_formatter).call(s_severity, time, @progname,
|
60
|
+
message)
|
56
61
|
@logger << s
|
57
62
|
end
|
58
63
|
|
59
|
-
|
60
|
-
class Formatter
|
61
|
-
attr_accessor :datetime_format
|
64
|
+
private
|
62
65
|
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
+
def format_severity(severity)
|
67
|
+
return Logger::SEV_LABEL[severity] || "ANY"
|
68
|
+
end
|
66
69
|
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
70
|
+
class ArgumentFormatter
|
71
|
+
def call(severity: _, time: _, progname: _,
|
72
|
+
args: args(), block_result: block_result(),
|
73
|
+
**_) # for ignoring future arguments
|
74
|
+
if block_result
|
75
|
+
# {foo: "bar"} => [{foo: bar}]
|
76
|
+
# ["msg", {foo: "bar"}] => ["msg", {foo: "bar"}]
|
77
|
+
*args_and_block_result = block_result
|
78
|
+
else
|
79
|
+
args_and_block_result = args
|
80
|
+
end
|
81
|
+
return format_body(*args_and_block_result)
|
77
82
|
end
|
78
83
|
|
79
84
|
private
|
80
85
|
|
81
|
-
|
82
|
-
|
83
|
-
def format_datetime(time)
|
84
|
-
time.strftime(@datetime_format || "%Y-%m-%dT%H:%M:%S.%6N".freeze)
|
85
|
-
end
|
86
|
-
|
87
|
-
def format_message(message = nil, **options)
|
86
|
+
def format_body(message = nil, **options)
|
88
87
|
return [message, format_options(options)].compact.join(": ")
|
89
88
|
end
|
90
89
|
|
data/structured_logger.gemspec
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: structured_logger
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yuya.Nishida.
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-12-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -108,6 +108,20 @@ dependencies:
|
|
108
108
|
- - ">="
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: '0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: activesupport
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ">="
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
111
125
|
description:
|
112
126
|
email:
|
113
127
|
- yuya@j96.org
|