ecs-logging 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 +4 -4
- data/.ci/Jenkinsfile +2 -2
- data/.gitignore +3 -0
- data/CHANGELOG.asciidoc +7 -0
- data/Dockerfile +1 -1
- data/README.md +2 -108
- data/docs/index.asciidoc +16 -0
- data/docs/intro.asciidoc +10 -0
- data/docs/setup.asciidoc +145 -0
- data/lib/ecs_logging/logger.rb +1 -1
- data/lib/ecs_logging/version.rb +1 -1
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1915b7e8e0bb7478ec5f730ab0362392f09f820ac12d79fd3474f87e207a05a3
|
4
|
+
data.tar.gz: e4100217b49ec650f2594176976f8f452a64cf26e7b807b99e1baca6fc47cbb0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 27e97608af308c9efed7211c0a50cef1f9832a6aa57ac4eb4c80d01d25d9b3cd28b3a01fb73cbbb88ee9a314ffa5c5cc45bdd8eddd645d7752741f21d10f43ed
|
7
|
+
data.tar.gz: 15abf89d399284aaad1517508358a8a5b34da28bdf1b442164be2f905a790eaa44b49978c7ab7285024e50b3c035e9f155b846da6acb85e5dea6b39a9042042e
|
data/.ci/Jenkinsfile
CHANGED
@@ -46,11 +46,11 @@ pipeline {
|
|
46
46
|
axes {
|
47
47
|
axis {
|
48
48
|
name 'RUBY_VERSION'
|
49
|
-
values 'ruby:2.7', 'ruby:2.6', 'ruby:2.5', 'ruby:2.4', 'ruby:2.3', 'jruby:9.2'
|
49
|
+
values 'ruby:2.7', 'ruby:2.6', 'ruby:2.5', 'ruby:2.4', 'ruby:2.3', 'jruby:9.2'
|
50
50
|
}
|
51
51
|
axis {
|
52
52
|
name 'FRAMEWORK'
|
53
|
-
values 'rails-6.
|
53
|
+
values 'rails-6.1', 'rails-6.0', 'rails-5.2', 'sinatra-2.0'
|
54
54
|
}
|
55
55
|
}
|
56
56
|
stages {
|
data/.gitignore
CHANGED
data/CHANGELOG.asciidoc
CHANGED
@@ -35,6 +35,13 @@ endif::[]
|
|
35
35
|
[[release-notes-0.x]]
|
36
36
|
=== ECS logging Ruby 0.x
|
37
37
|
|
38
|
+
[[release-notes-0.2.1]]
|
39
|
+
==== 0.2.1 (2021-01-13)
|
40
|
+
|
41
|
+
===== Fixed
|
42
|
+
|
43
|
+
- Calling severity methods without a progname {pull}13[#13]
|
44
|
+
|
38
45
|
[[release-notes-0.2.0]]
|
39
46
|
==== 0.2.0 (2020-12-09)
|
40
47
|
|
data/Dockerfile
CHANGED
@@ -34,7 +34,7 @@ RUN gem update --system && \
|
|
34
34
|
gem install bundler:$BUNDLER_VERSION
|
35
35
|
|
36
36
|
# Use unpatched, system version for more speed over less security
|
37
|
-
RUN gem install nokogiri -- --use-system-libraries
|
37
|
+
RUN gem install nokogiri -v 1.10.10 -- --use-system-libraries
|
38
38
|
|
39
39
|
WORKDIR /app
|
40
40
|
|
data/README.md
CHANGED
@@ -10,115 +10,9 @@ See [ecs-logging](https://github.com/elastic/ecs-logging) for other ECS logging
|
|
10
10
|
|
11
11
|
**Please note** that this library is in a <strong>pre-1.0</strong> version and backwards-incompatible changes might be introduced in future releases. While we strive to comply to [semver](https://semver.org/), we can not guarantee to avoid breaking changes in minor releases.
|
12
12
|
|
13
|
-
##
|
13
|
+
## Documentation
|
14
14
|
|
15
|
-
|
16
|
-
|
17
|
-
```ruby
|
18
|
-
gem 'ecs-logging'
|
19
|
-
```
|
20
|
-
|
21
|
-
And then execute:
|
22
|
-
|
23
|
-
$ bundle install
|
24
|
-
|
25
|
-
Or install it yourself as:
|
26
|
-
|
27
|
-
$ gem install ecs-logging
|
28
|
-
|
29
|
-
## Usage
|
30
|
-
|
31
|
-
`Ecs::Logger` is a subclass of Ruby's own [`Logger`](https://ruby-doc.org/stdlib/libdoc/logger/rdoc/Logger.html) and responds to the same methods.
|
32
|
-
|
33
|
-
```ruby
|
34
|
-
require 'ecs/logger'
|
35
|
-
|
36
|
-
logger = Ecs::Logger.new($stdout)
|
37
|
-
logger.info('my informative message')
|
38
|
-
logger.warn { 'be aware that…' }
|
39
|
-
logger.error('a_progname') { 'oh no!' }
|
40
|
-
```
|
41
|
-
|
42
|
-
Logs the following JSON to `$stdout`:
|
43
|
-
|
44
|
-
```ndjson
|
45
|
-
{"@timestamp":"2020-11-24T13:32:21.329Z","log.level":"INFO","message":"very informative","ecs.version":"1.4.0"}
|
46
|
-
{"@timestamp":"2020-11-24T13:32:21.330Z","log.level":"WARN","message":"be aware that…","ecs.version":"1.4.0"}
|
47
|
-
{"@timestamp":"2020-11-24T13:32:21.331Z","log.level":"ERROR","message":"oh no!","ecs.version":"1.4.0","process.title":"a_progname"}
|
48
|
-
```
|
49
|
-
|
50
|
-
Additionally, it allows for adding additional keys to messages, eg:
|
51
|
-
|
52
|
-
```ruby
|
53
|
-
logger.info('ok', labels: { my_label: 'value' }, 'trace.id': 'abc-xyz')
|
54
|
-
```
|
55
|
-
|
56
|
-
Logs:
|
57
|
-
|
58
|
-
```json
|
59
|
-
{
|
60
|
-
"@timestamp":"2020-11-24T13:32:21.331Z",
|
61
|
-
"log.level":"ERROR",
|
62
|
-
"message":"oh no!",
|
63
|
-
"ecs.version":"1.4.0",
|
64
|
-
"labels":{"my_label":"value"},
|
65
|
-
"trace.id":"abc-xyz"
|
66
|
-
}
|
67
|
-
```
|
68
|
-
|
69
|
-
To include info about where the log was called, call the methods with `include_origin: true`, like:
|
70
|
-
|
71
|
-
```ruby
|
72
|
-
logger.warn('Hello!', include_origin: true)
|
73
|
-
```
|
74
|
-
|
75
|
-
Resulting in
|
76
|
-
|
77
|
-
```json
|
78
|
-
{
|
79
|
-
"@timestamp":"2020-11-24T13:32:21.331Z",
|
80
|
-
"log.level":"WARN",
|
81
|
-
"message":"Hello!",
|
82
|
-
"ecs.version":"1.4.0",
|
83
|
-
"log.origin": {
|
84
|
-
"file.line": 123,
|
85
|
-
"file.name": "my_file.rb",
|
86
|
-
"function": "call"
|
87
|
-
}
|
88
|
-
}
|
89
|
-
```
|
90
|
-
|
91
|
-
## Usage with Rack
|
92
|
-
|
93
|
-
```ruby
|
94
|
-
use EcsLogging::Middleware, $stdout
|
95
|
-
```
|
96
|
-
|
97
|
-
Example output:
|
98
|
-
|
99
|
-
```json
|
100
|
-
{
|
101
|
-
"@timestamp":"2020-12-07T13:44:04.568Z",
|
102
|
-
"log.level":"INFO",
|
103
|
-
"message":"GET /",
|
104
|
-
"ecs.version":"1.4.0",
|
105
|
-
"client":{
|
106
|
-
"address":"127.0.0.1"
|
107
|
-
},
|
108
|
-
"http":{
|
109
|
-
"request":{
|
110
|
-
"method":"GET",
|
111
|
-
"body.bytes":"0"
|
112
|
-
}
|
113
|
-
},
|
114
|
-
"url":{
|
115
|
-
"domain":"example.org",
|
116
|
-
"path":"/",
|
117
|
-
"port":"80",
|
118
|
-
"scheme":"http"
|
119
|
-
}
|
120
|
-
}
|
121
|
-
```
|
15
|
+
Ready to get started? Documentation is at [elastic.co](https://www.elastic.co/guide/en/ecs-logging/ruby/current/index.html).
|
122
16
|
|
123
17
|
## License
|
124
18
|
|
data/docs/index.asciidoc
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
:ecs-repo-dir: {ecs-logging-root}/docs/
|
2
|
+
|
3
|
+
include::{docs-root}/shared/versions/stack/current.asciidoc[]
|
4
|
+
include::{docs-root}/shared/attributes.asciidoc[]
|
5
|
+
|
6
|
+
ifdef::env-github[]
|
7
|
+
NOTE: For the best reading experience,
|
8
|
+
please view this documentation at https://www.elastic.co/guide/en/ecs-logging/ruby/current/index.html[elastic.co]
|
9
|
+
endif::[]
|
10
|
+
|
11
|
+
= ECS Logging Ruby Reference
|
12
|
+
|
13
|
+
ifndef::env-github[]
|
14
|
+
include::./intro.asciidoc[Introduction]
|
15
|
+
include::./setup.asciidoc[Set up]
|
16
|
+
endif::[]
|
data/docs/intro.asciidoc
ADDED
@@ -0,0 +1,10 @@
|
|
1
|
+
[[intro]]
|
2
|
+
== Introduction
|
3
|
+
|
4
|
+
ECS loggers are formatter/encoder plugins for your favorite logging libraries.
|
5
|
+
They make it easy to format your logs into ECS-compatible JSON.
|
6
|
+
|
7
|
+
TIP: Want to learn more about ECS, ECS logging, and other available language plugins?
|
8
|
+
See the {ecs-logging-ref}/intro.html[ECS logging guide].
|
9
|
+
|
10
|
+
Ready to jump into `ecs-logging-ruby`? <<setup,Get started>>.
|
data/docs/setup.asciidoc
ADDED
@@ -0,0 +1,145 @@
|
|
1
|
+
[[setup]]
|
2
|
+
== Get started
|
3
|
+
|
4
|
+
[float]
|
5
|
+
[[setup-step-1]]
|
6
|
+
=== Step 1: Set up application logging
|
7
|
+
|
8
|
+
[float]
|
9
|
+
==== Add the dependency
|
10
|
+
|
11
|
+
Add this line to your application's Gemfile:
|
12
|
+
|
13
|
+
[source,ruby]
|
14
|
+
----
|
15
|
+
gem 'ecs-logging'
|
16
|
+
----
|
17
|
+
|
18
|
+
Execute with:
|
19
|
+
|
20
|
+
[source,cmd]
|
21
|
+
----
|
22
|
+
bundle install
|
23
|
+
----
|
24
|
+
|
25
|
+
Alternatively, you can install the package yourself with:
|
26
|
+
|
27
|
+
[source,cmd]
|
28
|
+
----
|
29
|
+
gem install ecs-logging
|
30
|
+
----
|
31
|
+
|
32
|
+
[float]
|
33
|
+
==== Configure
|
34
|
+
|
35
|
+
`Ecs::Logger` is a subclass of Ruby's own https://ruby-doc.org/stdlib/libdoc/logger/rdoc/Logger.html[`Logger`]
|
36
|
+
and responds to the same methods.
|
37
|
+
|
38
|
+
For example:
|
39
|
+
|
40
|
+
[source,ruby]
|
41
|
+
----
|
42
|
+
require 'ecs_logging/logger'
|
43
|
+
|
44
|
+
logger = EcsLogging::Logger.new($stdout)
|
45
|
+
logger.info('my informative message')
|
46
|
+
logger.warn { 'be aware that…' }
|
47
|
+
logger.error('a_progname') { 'oh no!' }
|
48
|
+
----
|
49
|
+
|
50
|
+
Logs the following JSON to `$stdout`:
|
51
|
+
|
52
|
+
[source,json]
|
53
|
+
----
|
54
|
+
{"@timestamp":"2020-11-24T13:32:21.329Z","log.level":"INFO","message":"very informative","ecs.version":"1.4.0"}
|
55
|
+
{"@timestamp":"2020-11-24T13:32:21.330Z","log.level":"WARN","message":"be aware that…","ecs.version":"1.4.0"}
|
56
|
+
{"@timestamp":"2020-11-24T13:32:21.331Z","log.level":"ERROR","message":"oh no!","ecs.version":"1.4.0","process.title":"a_progname"}
|
57
|
+
----
|
58
|
+
|
59
|
+
Additionally, it allows for adding additional keys to messages.
|
60
|
+
|
61
|
+
For example:
|
62
|
+
|
63
|
+
[source,ruby]
|
64
|
+
----
|
65
|
+
logger.info('ok', labels: { my_label: 'value' }, 'trace.id': 'abc-xyz')
|
66
|
+
----
|
67
|
+
|
68
|
+
Logs the following:
|
69
|
+
|
70
|
+
[source,json]
|
71
|
+
----
|
72
|
+
{
|
73
|
+
"@timestamp":"2020-11-24T13:32:21.331Z",
|
74
|
+
"log.level":"ERROR",
|
75
|
+
"message":"oh no!",
|
76
|
+
"ecs.version":"1.4.0",
|
77
|
+
"labels":{"my_label":"value"},
|
78
|
+
"trace.id":"abc-xyz"
|
79
|
+
}
|
80
|
+
----
|
81
|
+
|
82
|
+
To include info about where the log was called, call the methods with `include_origin: true`,
|
83
|
+
like `logger.warn('Hello!', include_origin: true)`. This logs:
|
84
|
+
|
85
|
+
[source,json]
|
86
|
+
----
|
87
|
+
{
|
88
|
+
"@timestamp":"2020-11-24T13:32:21.331Z",
|
89
|
+
"log.level":"WARN",
|
90
|
+
"message":"Hello!",
|
91
|
+
"ecs.version":"1.4.0",
|
92
|
+
"log.origin": {
|
93
|
+
"file.line": 123,
|
94
|
+
"file.name": "my_file.rb",
|
95
|
+
"function": "call"
|
96
|
+
}
|
97
|
+
}
|
98
|
+
----
|
99
|
+
|
100
|
+
[float]
|
101
|
+
==== Rack configuration
|
102
|
+
|
103
|
+
[source,ruby]
|
104
|
+
----
|
105
|
+
use EcsLogging::Middleware, $stdout
|
106
|
+
----
|
107
|
+
|
108
|
+
Example output:
|
109
|
+
|
110
|
+
[source,json]
|
111
|
+
----
|
112
|
+
{
|
113
|
+
"@timestamp":"2020-12-07T13:44:04.568Z",
|
114
|
+
"log.level":"INFO",
|
115
|
+
"message":"GET /",
|
116
|
+
"ecs.version":"1.4.0",
|
117
|
+
"client":{
|
118
|
+
"address":"127.0.0.1"
|
119
|
+
},
|
120
|
+
"http":{
|
121
|
+
"request":{
|
122
|
+
"method":"GET",
|
123
|
+
"body.bytes":"0"
|
124
|
+
}
|
125
|
+
},
|
126
|
+
"url":{
|
127
|
+
"domain":"example.org",
|
128
|
+
"path":"/",
|
129
|
+
"port":"80",
|
130
|
+
"scheme":"http"
|
131
|
+
}
|
132
|
+
}
|
133
|
+
----
|
134
|
+
|
135
|
+
[float]
|
136
|
+
[[setup-step-2]]
|
137
|
+
=== Step 2: Enable APM log correlation (optional)
|
138
|
+
If you are using the Elastic APM Ruby agent,
|
139
|
+
{apm-ruby-ref}/log-correlation.html[enable log correlation].
|
140
|
+
|
141
|
+
[float]
|
142
|
+
[[setup-step-3]]
|
143
|
+
=== Step 3: Configure Filebeat
|
144
|
+
|
145
|
+
include::{ecs-repo-dir}/setup.asciidoc[tag=configure-filebeat]
|
data/lib/ecs_logging/logger.rb
CHANGED
@@ -57,7 +57,7 @@ module EcsLogging
|
|
57
57
|
end
|
58
58
|
|
59
59
|
%w[unknown fatal error warn info debug].each do |severity|
|
60
|
-
define_method(severity) do |progname, include_origin: false, **extras, &block|
|
60
|
+
define_method(severity) do |progname = nil, include_origin: false, **extras, &block|
|
61
61
|
if include_origin && origin = origin_from_caller(caller)
|
62
62
|
extras[:"log.origin"] = origin
|
63
63
|
end
|
data/lib/ecs_logging/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ecs-logging
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mikkel Malmberg
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-01-13 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Write a longer description or delete this line.
|
14
14
|
email:
|
@@ -36,6 +36,9 @@ files:
|
|
36
36
|
- bin/dev
|
37
37
|
- docker-compose.yml
|
38
38
|
- docker/entrypoint.sh
|
39
|
+
- docs/index.asciidoc
|
40
|
+
- docs/intro.asciidoc
|
41
|
+
- docs/setup.asciidoc
|
39
42
|
- ecs-logging.gemspec
|
40
43
|
- lib/ecs-logging.rb
|
41
44
|
- lib/ecs_logging.rb
|