docker-fluent-logger 0.0.10 → 1.0.0

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
- SHA1:
3
- metadata.gz: 78a120cf564ddd0b8b682d4b2ec1390bcfc95d54
4
- data.tar.gz: 6fafdb4d8076eda1c0d57021088ae5bde511e2d7
2
+ SHA256:
3
+ metadata.gz: d75b10f08411a0ff4b639e9cd62675d808c5b7cb7d9cdcffbdfd4d14c8edca14
4
+ data.tar.gz: 359a0731f0e7e10ff2bef3d494d85b140fdc1868dc29bc5b14b727391c2f6e85
5
5
  SHA512:
6
- metadata.gz: edef93281c81b21eb8c6fca879e1ec46c9920abcb594290e7c04f90aa149440fb02de671920e13ec77fd376264336f1a167fd616695b8306c30a118a06093828
7
- data.tar.gz: 5432825fef647d4b99246ac65ffbf2e307056523a7f79dee7416dd6c77e41dc3de443b16d791ba653fa7ab8220e6504b944b85f72d70560ad872210bbc0bb68a
6
+ metadata.gz: 8a056f64483a7d1a7de90cac9bb1238adf7c88365abc0447a3a77b97d415f7b2961ee0a70f3d8bea7fbcdf2bf1efeae35cded48e78a5530ce2e477683bb07e1f
7
+ data.tar.gz: 642a190c7cbe6db42e392168d3a33612163604beed0db854fa8e81452f08d8cb959d93300e74fe4e42df20ef9b3662aca11ae18a6769317e8ba617ad3f3967d4
@@ -0,0 +1,2 @@
1
+ ---
2
+ BUNDLE_PATH: "vendor/bundle"
data/.gitignore CHANGED
@@ -1,11 +1,3 @@
1
- /.bundle/
2
- /.yardoc
3
- /Gemfile.lock
4
- /_yardoc/
5
- /doc/
6
- /pkg/
7
- /spec/reports/
8
- /tmp/
9
-
10
- # rspec failure tracking
11
- .rspec_status
1
+ .DS_Store
2
+ pkg
3
+ vendor
@@ -0,0 +1,115 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ docker-fluent-logger (1.0.0)
5
+ activesupport (>= 5.0.0)
6
+ lograge (~> 0.5)
7
+ oj (~> 3.10.0)
8
+ thor (~> 0.19)
9
+
10
+ GEM
11
+ remote: https://rubygems.org/
12
+ specs:
13
+ actionpack (6.0.1)
14
+ actionview (= 6.0.1)
15
+ activesupport (= 6.0.1)
16
+ rack (~> 2.0)
17
+ rack-test (>= 0.6.3)
18
+ rails-dom-testing (~> 2.0)
19
+ rails-html-sanitizer (~> 1.0, >= 1.2.0)
20
+ actionview (6.0.1)
21
+ activesupport (= 6.0.1)
22
+ builder (~> 3.1)
23
+ erubi (~> 1.4)
24
+ rails-dom-testing (~> 2.0)
25
+ rails-html-sanitizer (~> 1.1, >= 1.2.0)
26
+ activesupport (6.0.1)
27
+ concurrent-ruby (~> 1.0, >= 1.0.2)
28
+ i18n (>= 0.7, < 2)
29
+ minitest (~> 5.1)
30
+ tzinfo (~> 1.1)
31
+ zeitwerk (~> 2.2)
32
+ ast (2.4.0)
33
+ builder (3.2.3)
34
+ concurrent-ruby (1.1.5)
35
+ crass (1.0.5)
36
+ diff-lcs (1.3)
37
+ erubi (1.9.0)
38
+ i18n (1.7.0)
39
+ concurrent-ruby (~> 1.0)
40
+ jaro_winkler (1.5.4)
41
+ lograge (0.11.2)
42
+ actionpack (>= 4)
43
+ activesupport (>= 4)
44
+ railties (>= 4)
45
+ request_store (~> 1.0)
46
+ loofah (2.4.0)
47
+ crass (~> 1.0.2)
48
+ nokogiri (>= 1.5.9)
49
+ method_source (0.9.2)
50
+ mini_portile2 (2.4.0)
51
+ minitest (5.13.0)
52
+ nokogiri (1.10.7)
53
+ mini_portile2 (~> 2.4.0)
54
+ oj (3.10.0)
55
+ parallel (1.19.1)
56
+ parser (2.6.5.0)
57
+ ast (~> 2.4.0)
58
+ rack (2.0.7)
59
+ rack-test (1.1.0)
60
+ rack (>= 1.0, < 3)
61
+ rails-dom-testing (2.0.3)
62
+ activesupport (>= 4.2.0)
63
+ nokogiri (>= 1.6)
64
+ rails-html-sanitizer (1.3.0)
65
+ loofah (~> 2.3)
66
+ railties (6.0.1)
67
+ actionpack (= 6.0.1)
68
+ activesupport (= 6.0.1)
69
+ method_source
70
+ rake (>= 0.8.7)
71
+ thor (>= 0.20.3, < 2.0)
72
+ rainbow (3.0.0)
73
+ rake (10.5.0)
74
+ request_store (1.4.1)
75
+ rack (>= 1.4)
76
+ rspec (3.9.0)
77
+ rspec-core (~> 3.9.0)
78
+ rspec-expectations (~> 3.9.0)
79
+ rspec-mocks (~> 3.9.0)
80
+ rspec-core (3.9.0)
81
+ rspec-support (~> 3.9.0)
82
+ rspec-expectations (3.9.0)
83
+ diff-lcs (>= 1.2.0, < 2.0)
84
+ rspec-support (~> 3.9.0)
85
+ rspec-mocks (3.9.0)
86
+ diff-lcs (>= 1.2.0, < 2.0)
87
+ rspec-support (~> 3.9.0)
88
+ rspec-support (3.9.0)
89
+ rubocop (0.77.0)
90
+ jaro_winkler (~> 1.5.1)
91
+ parallel (~> 1.10)
92
+ parser (>= 2.6)
93
+ rainbow (>= 2.2.2, < 4.0)
94
+ ruby-progressbar (~> 1.7)
95
+ unicode-display_width (>= 1.4.0, < 1.7)
96
+ ruby-progressbar (1.10.1)
97
+ thor (0.20.3)
98
+ thread_safe (0.3.6)
99
+ tzinfo (1.2.5)
100
+ thread_safe (~> 0.1)
101
+ unicode-display_width (1.6.0)
102
+ zeitwerk (2.2.2)
103
+
104
+ PLATFORMS
105
+ ruby
106
+
107
+ DEPENDENCIES
108
+ bundler (~> 1.14)
109
+ docker-fluent-logger!
110
+ rake (~> 10.0)
111
+ rspec (~> 3.0)
112
+ rubocop (~> 0.48)
113
+
114
+ BUNDLED WITH
115
+ 1.17.2
data/README.md CHANGED
@@ -1,6 +1,48 @@
1
1
  # DockerFluentLogger
2
2
 
3
- @TODO
3
+ Output Rails log to JSON format.
4
+
5
+ ## e.g.
6
+
7
+ HTTP request outputs following log to STDOUT.
8
+
9
+ ```
10
+ {
11
+ "method": "GET",
12
+ "path": "/",
13
+ "format": "html",
14
+ "controller": "IndexController",
15
+ "action": "index",
16
+ "status": 403,
17
+ "duration": 428.27,
18
+ "view": 0.29,
19
+ "db": 0.0,
20
+ "timestamp": "2019-12-11T12:21:00.050200Z",
21
+ "hostname": "f78a33527a16",
22
+ "uuid": "a4ecff04-d6d9-4477-8746-0b78ccae0e13",
23
+ "url": "http://localhost:3000/",
24
+ "remote_ip": "172.29.0.1",
25
+ "referer": null,
26
+ "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36"
27
+ }
28
+ ```
29
+
30
+ Rails logger also output logs in JSON as well.
31
+
32
+ ```
33
+ logger.info('example')
34
+ # Or
35
+ DockerFluentLogger.create.info('example')
36
+ ```
37
+
38
+ Following log is output.
39
+ ```
40
+ {
41
+ "severity": "INFO",
42
+ "timestamp": "2019-12-11T12:19:01.599089Z",
43
+ "message": "example"
44
+ }
45
+ ```
4
46
 
5
47
  ## Installation
6
48
 
@@ -47,17 +89,7 @@ end
47
89
  Add following code to `config/environments/***.rb`.
48
90
 
49
91
  ```ruby
50
- if ENV['RAILS_LOG_TO_STDOUT'].present?
51
- config.logger = DockerFluentLogger.create
52
- end
53
- ```
54
-
55
- When using [ECS Deployer](https://github.com/naomichi-y/ecs_deployer), Add `RAILS_LOG_TO_STDOUT` variable to `config/deploy/***.yml`.
56
-
57
- ```yaml
58
- environment:
59
- - name: RAILS_LOG_TO_STDOUT
60
- value: enabled
92
+ config.logger = DockerFluentLogger.create
61
93
  ```
62
94
 
63
95
  ## License
@@ -31,11 +31,10 @@ Gem::Specification.new do |spec|
31
31
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
32
32
  spec.require_paths = ['lib']
33
33
 
34
- spec.add_dependency 'thor', '~> 0.19'
35
- spec.add_dependency 'lograge', '~> 0.5'
36
- spec.add_dependency 'logstash-logger', '~> 0.24'
37
- spec.add_dependency 'logstash-event', '~> 1.2'
38
34
  spec.add_dependency 'activesupport', '>= 5.0.0'
35
+ spec.add_dependency 'lograge', '~> 0.5'
36
+ spec.add_dependency 'oj', '~> 3.10.0'
37
+ spec.add_dependency 'thor', '~> 0.19'
39
38
 
40
39
  spec.add_development_dependency 'bundler', '~> 1.14'
41
40
  spec.add_development_dependency 'rake', '~> 10.0'
@@ -1,4 +1,5 @@
1
1
  require 'bundler/setup'
2
2
  require 'docker-fluent-logger'
3
3
 
4
- DockerFluentLogger.create
4
+ logger = DockerFluentLogger.create
5
+ logger.info('example');
@@ -1,4 +1,6 @@
1
- require 'logstash-logger'
1
+ require 'json'
2
+ require 'logger'
3
+ require 'oj'
2
4
 
3
5
  require 'docker-fluent-logger/cli'
4
6
  require 'docker-fluent-logger/payload'
@@ -6,6 +8,18 @@ require 'docker-fluent-logger/version'
6
8
 
7
9
  module DockerFluentLogger
8
10
  def self.create
9
- LogStashLogger.new(type: :stdout)
11
+ logger = Logger.new(STDOUT)
12
+
13
+ logger.formatter = proc do |severity, datetime, progname, message|
14
+ data = {
15
+ severity: severity,
16
+ timestamp: datetime.utc.iso8601(6),
17
+ message: message
18
+ }
19
+ data[:progname] = progname unless progname.nil?
20
+ "#{Oj.dump(data, mode: :compat)}\n"
21
+ end
22
+
23
+ logger
10
24
  end
11
25
  end
@@ -2,11 +2,10 @@ require 'thor'
2
2
 
3
3
  module DockerFluentLogger
4
4
  class CLI < Thor
5
- desc 'install', 'Setup programs'
5
+ desc 'install', 'Install file'
6
6
  def install
7
7
  current_dir = Pathname(File.dirname(__FILE__))
8
8
 
9
- # lograte.rb
10
9
  src_path = current_dir.join('generator', 'templates', 'lograge.rb')
11
10
  dest_path = Pathname('config').join('initializers', 'lograge.rb')
12
11
 
@@ -4,11 +4,12 @@ Rails.application.configure do
4
4
  config.lograge.logger = ActiveSupport::Logger.new(STDOUT)
5
5
  config.lograge.enabled = true
6
6
  config.lograge.keep_original_rails_log = false
7
- config.lograge.formatter = Lograge::Formatters::Logstash.new
7
+ config.lograge.formatter = Lograge::Formatters::Json.new
8
8
 
9
9
  config.lograge.custom_options = lambda do |event|
10
10
  data = {
11
- hostname: Socket.gethostname,
11
+ timestamp: event.payload[:timestamp],
12
+ hostname: event.payload[:hostname],
12
13
  uuid: event.payload[:uuid],
13
14
  url: event.payload[:url],
14
15
  remote_ip: event.payload[:remote_ip],
@@ -8,7 +8,8 @@ module DockerFluentLogger
8
8
  def append_info_to_payload(payload)
9
9
  super
10
10
 
11
- payload[:@timestamp] = Time.now.utc
11
+ payload[:timestamp] = Time.now.utc.iso8601(6)
12
+ payload[:hostname] = Socket.gethostname
12
13
  payload[:uuid] = request.uuid
13
14
  payload[:url] = request.url
14
15
  payload[:referer] = request.referer
@@ -1,3 +1,3 @@
1
1
  module DockerFluentLogger
2
- VERSION = '0.0.10'.freeze
2
+ VERSION = '1.0.0'.freeze
3
3
  end
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: docker-fluent-logger
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.10
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - naomichi-y
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-11-30 00:00:00.000000000 Z
11
+ date: 2019-12-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: thor
14
+ name: activesupport
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '0.19'
19
+ version: 5.0.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: '0.19'
26
+ version: 5.0.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: lograge
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -39,47 +39,33 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0.5'
41
41
  - !ruby/object:Gem::Dependency
42
- name: logstash-logger
42
+ name: oj
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '0.24'
47
+ version: 3.10.0
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '0.24'
54
+ version: 3.10.0
55
55
  - !ruby/object:Gem::Dependency
56
- name: logstash-event
56
+ name: thor
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '1.2'
61
+ version: '0.19'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '1.2'
69
- - !ruby/object:Gem::Dependency
70
- name: activesupport
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - ">="
74
- - !ruby/object:Gem::Version
75
- version: 5.0.0
76
- type: :runtime
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - ">="
81
- - !ruby/object:Gem::Version
82
- version: 5.0.0
68
+ version: '0.19'
83
69
  - !ruby/object:Gem::Dependency
84
70
  name: bundler
85
71
  requirement: !ruby/object:Gem::Requirement
@@ -144,10 +130,12 @@ executables:
144
130
  extensions: []
145
131
  extra_rdoc_files: []
146
132
  files:
133
+ - ".bundle/config"
147
134
  - ".gitignore"
148
135
  - ".rspec"
149
136
  - ".rubocop.yml"
150
137
  - Gemfile
138
+ - Gemfile.lock
151
139
  - LICENSE.txt
152
140
  - README.md
153
141
  - Rakefile
@@ -158,7 +146,6 @@ files:
158
146
  - exe/docker-fluent-logger
159
147
  - lib/docker-fluent-logger.rb
160
148
  - lib/docker-fluent-logger/cli.rb
161
- - lib/docker-fluent-logger/generator/.DS_Store
162
149
  - lib/docker-fluent-logger/generator/templates/lograge.rb
163
150
  - lib/docker-fluent-logger/payload.rb
164
151
  - lib/docker-fluent-logger/version.rb
@@ -182,7 +169,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
182
169
  version: '0'
183
170
  requirements: []
184
171
  rubyforge_project:
185
- rubygems_version: 2.6.8
172
+ rubygems_version: 2.7.6
186
173
  signing_key:
187
174
  specification_version: 4
188
175
  summary: Transfer docker log to Flutend