elastic-logger 0.5.0 → 0.5.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/README.md +2 -0
- data/lib/elastic-logger/configuration.rb +1 -2
- data/lib/elastic-logger/logger.rb +34 -19
- data/lib/elastic-logger/message_parser.rb +11 -0
- data/lib/elastic-logger/templates/elastic_log_types.yml +2 -0
- data/lib/elastic-logger/types.rb +8 -0
- data/lib/elastic-logger/version.rb +1 -1
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1f30dcd658a8374818b9e9cc9adf7739843470e7
|
4
|
+
data.tar.gz: 12aac98849fd19285474ffb710e1e1ff6a97ee9c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cab4d67cd8c408a7f9a25ca59c6a5d6e7bb4b206f86ed4691a608e0a5ff85d0ce12c3c06b2579e96b11e906e0cc06dc6309b1ab784f0818e2e16e483dcb5e022
|
7
|
+
data.tar.gz: abeeb8ec4d25528616acf499d4e4a51086b87b50b99b7fa53348156cb02363d45d437f415b4a041c5eb853953d1cf0021d4afcf85c7a38df5e4c8d4c3af7deac
|
data/README.md
CHANGED
@@ -41,6 +41,7 @@ With this file we create two logs, one which will log to elastic, and one to sta
|
|
41
41
|
```yml
|
42
42
|
sidekiq_monitor:
|
43
43
|
writer: 'InfaktLogger::ElkWriter'
|
44
|
+
level: 'debug' # log level, one of debug, error, fatal, info, unknown, and warn
|
44
45
|
delete:
|
45
46
|
type: 'standard' # never if you want to keep that log
|
46
47
|
unit: 'days' # One of seconds, minutes, hours, days, weeks, months, or years.
|
@@ -51,6 +52,7 @@ sidekiq_monitor:
|
|
51
52
|
unit_count: 2 # The number of unit (s). unit_count * unit will be calculated out to the relative number of seconds.
|
52
53
|
api_requests:
|
53
54
|
writer: 'InfaktLogger::DiskWriter'
|
55
|
+
level: 'warn'
|
54
56
|
```
|
55
57
|
### Usage
|
56
58
|
|
@@ -1,13 +1,12 @@
|
|
1
1
|
module ElasticLogger
|
2
2
|
class Configuration
|
3
|
-
attr_accessor :host, :types_file, :path, :prefix
|
3
|
+
attr_accessor :host, :types_file, :path, :prefix
|
4
4
|
|
5
5
|
def initialize
|
6
6
|
@host = 'localhost:9200'
|
7
7
|
@types_file = 'config/elastic_log_types.yml'
|
8
8
|
@path = 'log'
|
9
9
|
@prefix = ''
|
10
|
-
@log_level = ::Logger::DEBUG
|
11
10
|
end
|
12
11
|
end
|
13
12
|
end
|
@@ -1,10 +1,12 @@
|
|
1
|
+
require 'elastic-logger/message_parser'
|
1
2
|
require 'elastic-logger/types'
|
2
3
|
|
3
4
|
module ElasticLogger
|
4
5
|
class Logger
|
5
6
|
|
6
|
-
def initialize(name)
|
7
|
+
def initialize(name, log_level = nil)
|
7
8
|
@name = name.to_s
|
9
|
+
@log_level = log_level
|
8
10
|
end
|
9
11
|
|
10
12
|
# def debug(hash)
|
@@ -15,31 +17,26 @@ module ElasticLogger
|
|
15
17
|
# def warn(hash)
|
16
18
|
%w(debug error fatal info unknown warn).each do |severity|
|
17
19
|
define_method(severity) do |hash|
|
18
|
-
log(hash, severity
|
20
|
+
log(hash, severity)
|
19
21
|
end
|
20
22
|
end
|
21
23
|
|
22
|
-
def log(msg, severity = '
|
23
|
-
return true if
|
24
|
+
def log(msg, severity = 'unknown')
|
25
|
+
return true if skip_logging?(severity)
|
24
26
|
|
25
|
-
writer.log(severity,
|
27
|
+
writer.log(format_severity(severity), format_message(msg))
|
26
28
|
true
|
27
29
|
end
|
28
30
|
|
29
31
|
private
|
30
32
|
attr_reader :name
|
31
33
|
|
32
|
-
def
|
33
|
-
|
34
|
-
Object.const_get(writer).new(name: log_name, config: config)
|
34
|
+
def skip_logging?(severity)
|
35
|
+
log_levels[severity] < log_levels[log_level]
|
35
36
|
end
|
36
37
|
|
37
|
-
def
|
38
|
-
|
39
|
-
when String then { msg: msg }
|
40
|
-
when Array then msg.map.with_index { |v, i| [i, v] }.to_h
|
41
|
-
else msg
|
42
|
-
end
|
38
|
+
def writer
|
39
|
+
Object.const_get(log_writer).new(name: log_name, config: config)
|
43
40
|
end
|
44
41
|
|
45
42
|
def log_name
|
@@ -47,15 +44,33 @@ module ElasticLogger
|
|
47
44
|
end
|
48
45
|
|
49
46
|
def config
|
50
|
-
@config ||= ElasticLogger.configuration
|
47
|
+
@config ||= ::ElasticLogger.configuration
|
48
|
+
end
|
49
|
+
|
50
|
+
def format_message(msg)
|
51
|
+
::ElasticLogger::MessageParser.new.(msg)
|
52
|
+
end
|
53
|
+
|
54
|
+
def log_writer
|
55
|
+
log_type.fetch('writer')
|
56
|
+
end
|
57
|
+
|
58
|
+
def log_level
|
59
|
+
@log_level ||= log_type.fetch('level', 'info')
|
51
60
|
end
|
52
61
|
|
53
|
-
def
|
54
|
-
|
62
|
+
def log_type
|
63
|
+
@log_type ||= ::ElasticLogger::Types.new.find(name)
|
64
|
+
end
|
65
|
+
|
66
|
+
def log_levels
|
67
|
+
@log_levels ||= Hash.new do |hash, key|
|
68
|
+
hash[key] = ::Logger.const_get(format_severity(key))
|
69
|
+
end
|
55
70
|
end
|
56
71
|
|
57
|
-
def
|
58
|
-
|
72
|
+
def format_severity(severity)
|
73
|
+
severity.to_s.upcase
|
59
74
|
end
|
60
75
|
end
|
61
76
|
end
|
@@ -1,5 +1,6 @@
|
|
1
1
|
first_sample_log:
|
2
2
|
writer: 'ElasticLogger::ElkWriter'
|
3
|
+
level: 'debug' # log level
|
3
4
|
delete:
|
4
5
|
type: 'standard' # never if you want to keep that log
|
5
6
|
unit: 'days' # One of seconds, minutes, hours, days, weeks, months, or years.
|
@@ -10,3 +11,4 @@ first_sample_log:
|
|
10
11
|
unit_count: 2 # The number of unit (s). unit_count * unit will be calculated out to the relative number of seconds.
|
11
12
|
second_sample_log:
|
12
13
|
writer: 'InfaktLogger::DiskWriter'
|
14
|
+
level: 'warn'
|
data/lib/elastic-logger/types.rb
CHANGED
@@ -8,6 +8,10 @@ module ElasticLogger
|
|
8
8
|
logs.select { |_, values| values.fetch("writer") == writer }
|
9
9
|
end
|
10
10
|
|
11
|
+
def find(name)
|
12
|
+
logs.fetch(name, default)
|
13
|
+
end
|
14
|
+
|
11
15
|
private
|
12
16
|
|
13
17
|
def logs
|
@@ -17,5 +21,9 @@ module ElasticLogger
|
|
17
21
|
def config
|
18
22
|
ElasticLogger.configuration
|
19
23
|
end
|
24
|
+
|
25
|
+
def default
|
26
|
+
{ "writer" => "ElasticLogger::NullLogger", "level" => "debug" }
|
27
|
+
end
|
20
28
|
end
|
21
29
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: elastic-logger
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Radosław Woźnik
|
@@ -57,6 +57,7 @@ files:
|
|
57
57
|
- lib/elastic-logger/elk_writer.rb
|
58
58
|
- lib/elastic-logger/generator.rb
|
59
59
|
- lib/elastic-logger/logger.rb
|
60
|
+
- lib/elastic-logger/message_parser.rb
|
60
61
|
- lib/elastic-logger/null_writer.rb
|
61
62
|
- lib/elastic-logger/railtie.rb
|
62
63
|
- lib/elastic-logger/rotate.rake
|