semantic_logger 3.0.1 → 3.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/lib/semantic_logger.rb +29 -13
- data/lib/semantic_logger/ansi_colors.rb +27 -0
- data/lib/semantic_logger/appender/base.rb +54 -128
- data/lib/semantic_logger/appender/bugsnag.rb +29 -19
- data/lib/semantic_logger/appender/elasticsearch.rb +9 -9
- data/lib/semantic_logger/appender/file.rb +40 -18
- data/lib/semantic_logger/appender/graylog.rb +30 -26
- data/lib/semantic_logger/appender/http.rb +14 -19
- data/lib/semantic_logger/appender/mongodb.rb +20 -20
- data/lib/semantic_logger/appender/new_relic.rb +15 -15
- data/lib/semantic_logger/appender/splunk.rb +1 -1
- data/lib/semantic_logger/appender/splunk_http.rb +28 -25
- data/lib/semantic_logger/appender/syslog.rb +41 -42
- data/lib/semantic_logger/appender/wrapper.rb +19 -17
- data/lib/semantic_logger/base.rb +57 -32
- data/lib/semantic_logger/concerns/compatibility.rb +51 -0
- data/lib/semantic_logger/debug_as_trace_logger.rb +6 -2
- data/lib/semantic_logger/formatters/color.rb +66 -0
- data/lib/semantic_logger/formatters/default.rb +39 -0
- data/lib/semantic_logger/formatters/json.rb +16 -0
- data/lib/semantic_logger/jruby/garbage_collection_logger.rb +1 -1
- data/lib/semantic_logger/log.rb +13 -8
- data/lib/semantic_logger/loggable.rb +2 -2
- data/lib/semantic_logger/logger.rb +18 -13
- data/lib/semantic_logger/metrics/new_relic.rb +18 -0
- data/lib/semantic_logger/metrics/statsd.rb +48 -0
- data/lib/semantic_logger/semantic_logger.rb +122 -55
- data/lib/semantic_logger/version.rb +1 -1
- data/test/appender/bugsnag_test.rb +12 -3
- data/test/appender/mongodb_test.rb +6 -5
- data/test/appender/new_relic_test.rb +1 -1
- data/test/appender/splunk_http_test.rb +1 -0
- data/test/concerns/compatibility_test.rb +106 -0
- data/test/debug_as_trace_logger_test.rb +1 -1
- data/test/loggable_test.rb +1 -1
- data/test/logger_test.rb +183 -24
- metadata +12 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7010f9d28a473c9cd0c9fb9d52608216bad68043
|
4
|
+
data.tar.gz: 052152f47b9eb211a26c47a2bbbff8742f497449
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 17d21c7f8bc35b93e52074cfac26bb0c350c989b589a8fb4a096c43a71148b4e245ace66ef36c8af9693355dc3741623896afb48bc2a01473b062a3ee1b6111a
|
7
|
+
data.tar.gz: 43eaa8a554e95b8936e4a595593977e30a98b849dcaa9d419762420a0f3edcd03d9f1f923cdeda2897b48332c1b5bcd89a9500f1df181d57283e56c11cc296ac
|
data/README.md
CHANGED
@@ -65,7 +65,7 @@ require 'semantic_logger'
|
|
65
65
|
SemanticLogger.default_level = :trace
|
66
66
|
|
67
67
|
# Log to a file, and use the colorized formatter
|
68
|
-
SemanticLogger.add_appender('development.log',
|
68
|
+
SemanticLogger.add_appender(file: 'development.log', formatter: :color)
|
69
69
|
```
|
70
70
|
|
71
71
|
If running rails, see: [Semantic Logger Rails](http://rocketjob.github.io/semantic_logger/rails.html)
|
data/lib/semantic_logger.rb
CHANGED
@@ -4,6 +4,7 @@ require 'semantic_logger/semantic_logger'
|
|
4
4
|
|
5
5
|
# @formatter:off
|
6
6
|
module SemanticLogger
|
7
|
+
autoload :AnsiColors, 'semantic_logger/ansi_colors'
|
7
8
|
autoload :Base, 'semantic_logger/base'
|
8
9
|
autoload :DebugAsTraceLogger, 'semantic_logger/debug_as_trace_logger'
|
9
10
|
autoload :Log, 'semantic_logger/log'
|
@@ -11,20 +12,34 @@ module SemanticLogger
|
|
11
12
|
autoload :Loggable, 'semantic_logger/loggable'
|
12
13
|
|
13
14
|
module Appender
|
14
|
-
autoload :Base,
|
15
|
-
autoload :Bugsnag,
|
16
|
-
autoload :Elasticsearch,
|
17
|
-
autoload :File,
|
18
|
-
autoload :Graylog,
|
19
|
-
autoload :Http,
|
20
|
-
autoload :MongoDB,
|
21
|
-
autoload :NewRelic,
|
22
|
-
autoload :Splunk,
|
23
|
-
autoload :SplunkHttp,
|
24
|
-
autoload :Syslog,
|
25
|
-
autoload :Wrapper,
|
15
|
+
autoload :Base, 'semantic_logger/appender/base'
|
16
|
+
autoload :Bugsnag, 'semantic_logger/appender/bugsnag'
|
17
|
+
autoload :Elasticsearch, 'semantic_logger/appender/elasticsearch'
|
18
|
+
autoload :File, 'semantic_logger/appender/file'
|
19
|
+
autoload :Graylog, 'semantic_logger/appender/graylog'
|
20
|
+
autoload :Http, 'semantic_logger/appender/http'
|
21
|
+
autoload :MongoDB, 'semantic_logger/appender/mongodb'
|
22
|
+
autoload :NewRelic, 'semantic_logger/appender/new_relic'
|
23
|
+
autoload :Splunk, 'semantic_logger/appender/splunk'
|
24
|
+
autoload :SplunkHttp, 'semantic_logger/appender/splunk_http'
|
25
|
+
autoload :Syslog, 'semantic_logger/appender/syslog'
|
26
|
+
autoload :Wrapper, 'semantic_logger/appender/wrapper'
|
27
|
+
end
|
28
|
+
|
29
|
+
module Concerns
|
30
|
+
autoload :Compatibility, 'semantic_logger/concerns/compatibility'
|
31
|
+
end
|
32
|
+
|
33
|
+
module Formatters
|
34
|
+
autoload :Color, 'semantic_logger/formatters/color'
|
35
|
+
autoload :Default, 'semantic_logger/formatters/default'
|
36
|
+
autoload :Json, 'semantic_logger/formatters/json'
|
37
|
+
end
|
38
|
+
|
39
|
+
module Metrics
|
40
|
+
autoload :NewRelic, 'semantic_logger/metrics/new_relic'
|
41
|
+
autoload :Statsd, 'semantic_logger/metrics/statsd'
|
26
42
|
end
|
27
|
-
# @formatter:on
|
28
43
|
|
29
44
|
if defined?(JRuby)
|
30
45
|
module JRuby
|
@@ -32,6 +47,7 @@ module SemanticLogger
|
|
32
47
|
end
|
33
48
|
end
|
34
49
|
end
|
50
|
+
# @formatter:on
|
35
51
|
|
36
52
|
# Flush all appenders at exit, waiting for outstanding messages on the queue
|
37
53
|
# to be written first
|
@@ -0,0 +1,27 @@
|
|
1
|
+
module SemanticLogger
|
2
|
+
# Formatting & colors used by optional color formatter
|
3
|
+
module AnsiColors
|
4
|
+
CLEAR = "\e[0m"
|
5
|
+
BOLD = "\e[1m"
|
6
|
+
BLACK = "\e[30m"
|
7
|
+
RED = "\e[31m"
|
8
|
+
GREEN = "\e[32m"
|
9
|
+
YELLOW = "\e[33m"
|
10
|
+
BLUE = "\e[34m"
|
11
|
+
MAGENTA = "\e[35m"
|
12
|
+
CYAN = "\e[36m"
|
13
|
+
WHITE = "\e[37m"
|
14
|
+
|
15
|
+
# Maps the log level to a color for colorized formatters
|
16
|
+
# Since this map is not frozen, it can be modified as needed
|
17
|
+
LEVEL_MAP = {
|
18
|
+
trace: MAGENTA,
|
19
|
+
debug: GREEN,
|
20
|
+
info: CYAN,
|
21
|
+
warn: BOLD,
|
22
|
+
error: RED,
|
23
|
+
fatal: RED
|
24
|
+
}
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
@@ -1,10 +1,3 @@
|
|
1
|
-
require 'json'
|
2
|
-
# Load AwesomePrint if available
|
3
|
-
begin
|
4
|
-
require 'awesome_print'
|
5
|
-
rescue LoadError
|
6
|
-
end
|
7
|
-
|
8
1
|
# Base appender
|
9
2
|
#
|
10
3
|
# Abstract base class for appenders
|
@@ -16,128 +9,42 @@ end
|
|
16
9
|
module SemanticLogger
|
17
10
|
module Appender
|
18
11
|
|
19
|
-
#
|
20
|
-
|
21
|
-
CLEAR = "\e[0m"
|
22
|
-
BOLD = "\e[1m"
|
23
|
-
BLACK = "\e[30m"
|
24
|
-
RED = "\e[31m"
|
25
|
-
GREEN = "\e[32m"
|
26
|
-
YELLOW = "\e[33m"
|
27
|
-
BLUE = "\e[34m"
|
28
|
-
MAGENTA = "\e[35m"
|
29
|
-
CYAN = "\e[36m"
|
30
|
-
WHITE = "\e[37m"
|
31
|
-
|
32
|
-
# Maps the log level to a color for colorized formatters
|
33
|
-
# Since this map is not frozen, it can be modified as needed
|
34
|
-
LEVEL_MAP = {
|
35
|
-
trace: MAGENTA,
|
36
|
-
debug: GREEN,
|
37
|
-
info: CYAN,
|
38
|
-
warn: BOLD,
|
39
|
-
error: RED,
|
40
|
-
fatal: RED
|
41
|
-
}
|
42
|
-
end
|
12
|
+
# DEPRECATED, use SemanticLogger::AnsiColors
|
13
|
+
AnsiColors = SemanticLogger::AnsiColors
|
43
14
|
|
44
15
|
class Base < SemanticLogger::Base
|
16
|
+
# Every logger has its own formatter
|
45
17
|
attr_accessor :formatter
|
46
18
|
|
47
|
-
#
|
48
|
-
|
49
|
-
|
50
|
-
# 2011-07-19 14:36:15.660 D [1149:ScriptThreadProcess] Rails -- Hello World
|
51
|
-
def default_formatter
|
52
|
-
Proc.new do |log, logger|
|
53
|
-
# Header with date, time, log level and process info
|
54
|
-
entry = "#{log.formatted_time} #{log.level_to_s} [#{log.process_info}]"
|
55
|
-
|
56
|
-
# Tags
|
57
|
-
entry << ' ' << log.tags.collect { |tag| "[#{tag}]" }.join(' ') if log.tags && (log.tags.size > 0)
|
58
|
-
|
59
|
-
# Duration
|
60
|
-
entry << " (#{log.duration_human})" if log.duration
|
61
|
-
|
62
|
-
# Class / app name
|
63
|
-
entry << " #{log.name}"
|
64
|
-
|
65
|
-
# Log message
|
66
|
-
entry << " -- #{log.message}" if log.message
|
67
|
-
|
68
|
-
# Payload
|
69
|
-
if payload = log.payload_to_s(false)
|
70
|
-
entry << ' -- ' << payload
|
71
|
-
end
|
72
|
-
|
73
|
-
# Exceptions
|
74
|
-
if log.exception
|
75
|
-
entry << " -- Exception: #{log.exception.class}: #{log.exception.message}\n"
|
76
|
-
entry << log.backtrace_to_s
|
77
|
-
end
|
78
|
-
entry
|
79
|
-
end
|
19
|
+
# Returns the current log level if set, otherwise it logs everything it receives
|
20
|
+
def level
|
21
|
+
@level || :trace
|
80
22
|
end
|
81
23
|
|
82
|
-
#
|
83
|
-
|
84
|
-
|
85
|
-
#
|
86
|
-
# 2011-07-19 14:36:15.660 D [1149:ScriptThreadProcess] Rails -- Hello World
|
87
|
-
def self.colorized_formatter
|
88
|
-
Proc.new do |log, logger|
|
89
|
-
colors = SemanticLogger::Appender::AnsiColors
|
90
|
-
level_color = colors::LEVEL_MAP[log.level]
|
91
|
-
|
92
|
-
# Header with date, time, log level and process info
|
93
|
-
entry = "#{log.formatted_time} #{level_color}#{log.level_to_s}#{colors::CLEAR} [#{log.process_info}]"
|
94
|
-
|
95
|
-
# Tags
|
96
|
-
entry << ' ' << log.tags.collect { |tag| "[#{level_color}#{tag}#{colors::CLEAR}]" }.join(' ') if log.tags && (log.tags.size > 0)
|
97
|
-
|
98
|
-
# Duration
|
99
|
-
entry << " (#{colors::BOLD}#{log.duration_human}#{colors::CLEAR})" if log.duration
|
100
|
-
|
101
|
-
# Class / app name
|
102
|
-
entry << " #{level_color}#{log.name}#{colors::CLEAR}"
|
103
|
-
|
104
|
-
# Log message
|
105
|
-
entry << " -- #{log.message}" if log.message
|
106
|
-
|
107
|
-
# Payload
|
108
|
-
if payload = log.payload_to_s(true)
|
109
|
-
entry << ' -- ' << payload
|
110
|
-
end
|
111
|
-
|
112
|
-
# Exceptions
|
113
|
-
if log.exception
|
114
|
-
entry << " -- Exception: #{colors::BOLD}#{log.exception.class}: #{log.exception.message}#{colors::CLEAR}\n"
|
115
|
-
entry << log.backtrace_to_s
|
116
|
-
end
|
117
|
-
entry
|
118
|
-
end
|
24
|
+
# An appender can implement a flush method if it is able to.
|
25
|
+
def flush
|
26
|
+
# NOOP
|
119
27
|
end
|
120
28
|
|
121
|
-
#
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
Proc.new
|
126
|
-
h = log.to_h
|
127
|
-
h.delete(:time)
|
128
|
-
h[:timestamp] = log.time.utc.iso8601(defined?(JRuby) ? 3 : 6)
|
129
|
-
h.to_json
|
130
|
-
end
|
29
|
+
# DEPRECATED: use SemanticLogger::Formatters::Default.new
|
30
|
+
def default_formatter
|
31
|
+
warn '[DEPRECATION] SemanticLogger::Appender::Base.default_level is deprecated. Please use SemanticLogger::Formatters::Default.new instead.'
|
32
|
+
formatter = SemanticLogger::Formatters::Default.new
|
33
|
+
Proc.new { |log, logger| formatter.call(log, logger) }
|
131
34
|
end
|
132
35
|
|
133
|
-
|
134
|
-
|
36
|
+
# DEPRECATED: use SemanticLogger::Formatters::Color.new
|
37
|
+
def self.colorized_formatter
|
38
|
+
warn '[DEPRECATION] SemanticLogger::Appender::Base.colorized_formatter is deprecated. Please use SemanticLogger::Formatters::Color.new instead.'
|
39
|
+
formatter = SemanticLogger::Formatters::Color.new
|
40
|
+
Proc.new { |log, logger| formatter.call(log, logger) }
|
135
41
|
end
|
136
42
|
|
137
|
-
#
|
138
|
-
|
139
|
-
|
140
|
-
|
43
|
+
# DEPRECATED: use SemanticLogger::Formatters::Json.new
|
44
|
+
def self.json_formatter
|
45
|
+
warn '[DEPRECATION] SemanticLogger::Appender::Base.json_formatter is deprecated. Please use SemanticLogger::Formatters::Json.new instead.'
|
46
|
+
formatter = SemanticLogger::Formatters::Json.new
|
47
|
+
Proc.new { |log, logger| formatter.call(log, logger) }
|
141
48
|
end
|
142
49
|
|
143
50
|
private
|
@@ -145,18 +52,32 @@ module SemanticLogger
|
|
145
52
|
# Initializer for Abstract Class SemanticLogger::Appender
|
146
53
|
#
|
147
54
|
# Parameters
|
148
|
-
#
|
149
|
-
#
|
150
|
-
#
|
151
|
-
#
|
55
|
+
# level: [:trace | :debug | :info | :warn | :error | :fatal]
|
56
|
+
# Override the log level for this appender.
|
57
|
+
# Default: :error
|
58
|
+
#
|
59
|
+
# formatter: [Object|Proc]
|
60
|
+
# An instance of a class that implements #call, or a Proc to be used to format
|
61
|
+
# the output from this appender
|
62
|
+
# Default: Use the built-in formatter (See: #call)
|
152
63
|
#
|
153
|
-
#
|
154
|
-
#
|
155
|
-
#
|
156
|
-
#
|
157
|
-
|
158
|
-
|
159
|
-
|
64
|
+
# filter: [Regexp|Proc]
|
65
|
+
# RegExp: Only include log messages where the class name matches the supplied.
|
66
|
+
# regular expression. All other messages will be ignored.
|
67
|
+
# Proc: Only include log messages where the supplied Proc returns true
|
68
|
+
# The Proc must return true or false.
|
69
|
+
def initialize(options={}, &block)
|
70
|
+
# Backward compatibility
|
71
|
+
options = {level: options} unless options.is_a?(Hash)
|
72
|
+
options = options.dup
|
73
|
+
level = options.delete(:level)
|
74
|
+
filter = options.delete(:filter)
|
75
|
+
@formatter = options.delete(:formatter)
|
76
|
+
@formatter = self.class.extract_formatter(@formatter) if @formatter.is_a?(Symbol)
|
77
|
+
@formatter ||= block
|
78
|
+
# Default to #call method for formatting if defined for an appender
|
79
|
+
@formatter ||= (respond_to?(:call) ? self : SemanticLogger::Formatters::Default.new)
|
80
|
+
raise(ArgumentError, "Unknown options: #{options.inspect}") if options.size > 0
|
160
81
|
|
161
82
|
# Appenders don't take a class name, so use this class name if an appender
|
162
83
|
# is logged to directly
|
@@ -170,6 +91,11 @@ module SemanticLogger
|
|
170
91
|
@level_index || 0
|
171
92
|
end
|
172
93
|
|
94
|
+
# Return formatter for supplied Symbol
|
95
|
+
def self.extract_formatter(formatter)
|
96
|
+
SemanticLogger.send(:named_formatter, formatter).new
|
97
|
+
end
|
98
|
+
|
173
99
|
end
|
174
100
|
end
|
175
101
|
end
|
@@ -7,51 +7,53 @@ end
|
|
7
7
|
# Send log messages to Bugsnag
|
8
8
|
#
|
9
9
|
# Example:
|
10
|
-
# SemanticLogger.add_appender(
|
10
|
+
# SemanticLogger.add_appender(appender: :bugsnag)
|
11
11
|
#
|
12
12
|
class SemanticLogger::Appender::Bugsnag < SemanticLogger::Appender::Base
|
13
|
-
# Create Appender
|
13
|
+
# Create Bugsnag Error / Exception Appender
|
14
14
|
#
|
15
15
|
# Parameters
|
16
16
|
# level: [:trace | :debug | :info | :warn | :error | :fatal]
|
17
17
|
# Override the log level for this appender.
|
18
18
|
# Default: :error
|
19
19
|
#
|
20
|
+
# formatter: [Object|Proc]
|
21
|
+
# An instance of a class that implements #call, or a Proc to be used to format
|
22
|
+
# the output from this appender
|
23
|
+
# Default: Use the built-in formatter (See: #call)
|
24
|
+
#
|
20
25
|
# filter: [Regexp|Proc]
|
21
26
|
# RegExp: Only include log messages where the class name matches the supplied.
|
22
27
|
# regular expression. All other messages will be ignored.
|
23
28
|
# Proc: Only include log messages where the supplied Proc returns true
|
24
29
|
# The Proc must return true or false.
|
25
30
|
def initialize(options = {}, &block)
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
31
|
+
# Backward compatibility
|
32
|
+
options = {level: options} unless options.is_a?(Hash)
|
33
|
+
options = options.dup
|
34
|
+
options[:level] = :error unless options.has_key?(:level)
|
30
35
|
|
31
|
-
raise 'Bugsnag only supports :info, :warn, or :error log levels' unless [:info, :warn, :error].include?(level)
|
36
|
+
raise 'Bugsnag only supports :info, :warn, or :error log levels' unless [:info, :warn, :error].include?(options[:level])
|
32
37
|
|
33
38
|
# Replace the Bugsnag logger so that we can identify its log messages and not forward them to Bugsnag
|
34
39
|
Bugsnag.configure { |config| config.logger = SemanticLogger[Bugsnag] }
|
35
|
-
|
40
|
+
|
41
|
+
super(options, &block)
|
36
42
|
end
|
37
43
|
|
38
44
|
# Returns [Hash] of parameters to send to Bugsnag.
|
39
|
-
def
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
h
|
46
|
-
end
|
45
|
+
def call(log, logger)
|
46
|
+
h = log.to_h
|
47
|
+
h[:severity] = log_level(log)
|
48
|
+
h.delete(:time)
|
49
|
+
h.delete(:exception)
|
50
|
+
h
|
47
51
|
end
|
48
52
|
|
49
53
|
# Send an error notification to Bugsnag
|
50
54
|
def log(log)
|
51
55
|
# Only log if level is warn, or error.
|
52
56
|
return false if (level_index > (log.level_index || 0)) ||
|
53
|
-
# We don't want to send fatal as those are already captured by Bugsnag.
|
54
|
-
#(log.level == :fatal) ||
|
55
57
|
# Ignore logs coming from Bugsnag itself
|
56
58
|
(log.name == 'Bugsnag') ||
|
57
59
|
# Filtered out?
|
@@ -75,7 +77,15 @@ class SemanticLogger::Appender::Bugsnag < SemanticLogger::Appender::Base
|
|
75
77
|
|
76
78
|
private
|
77
79
|
|
80
|
+
# Bugsnag supports: error, warning or info
|
78
81
|
def log_level(log)
|
79
|
-
|
82
|
+
case log.level
|
83
|
+
when :error, :fatal
|
84
|
+
'error'
|
85
|
+
when :warn
|
86
|
+
'warning'
|
87
|
+
else
|
88
|
+
'info'
|
89
|
+
end
|
80
90
|
end
|
81
91
|
end
|
@@ -2,15 +2,10 @@ require 'date'
|
|
2
2
|
# Forward all log messages to Elasticsearch.
|
3
3
|
#
|
4
4
|
# Example:
|
5
|
-
#
|
6
|
-
#
|
5
|
+
# SemanticLogger.add_appender(
|
6
|
+
# appender: :elasticsearch,
|
7
|
+
# url: 'http://localhost:9200'
|
7
8
|
# )
|
8
|
-
#
|
9
|
-
# # Optional: Exclude health_check log entries
|
10
|
-
# appender.filter = Proc.new { |log| log.message !~ /(health_check|Not logged in)/}
|
11
|
-
#
|
12
|
-
# SemanticLogger.add_appender(appender)
|
13
|
-
#
|
14
9
|
class SemanticLogger::Appender::Elasticsearch < SemanticLogger::Appender::Http
|
15
10
|
attr_accessor :index, :type
|
16
11
|
|
@@ -31,6 +26,11 @@ class SemanticLogger::Appender::Elasticsearch < SemanticLogger::Appender::Http
|
|
31
26
|
# Override the log level for this appender.
|
32
27
|
# Default: SemanticLogger.default_level
|
33
28
|
#
|
29
|
+
# formatter: [Object|Proc]
|
30
|
+
# An instance of a class that implements #call, or a Proc to be used to format
|
31
|
+
# the output from this appender
|
32
|
+
# Default: Use the built-in formatter (See: #call)
|
33
|
+
#
|
34
34
|
# filter: [Regexp|Proc]
|
35
35
|
# RegExp: Only include log messages where the class name matches the supplied.
|
36
36
|
# regular expression. All other messages will be ignored.
|
@@ -38,7 +38,7 @@ class SemanticLogger::Appender::Elasticsearch < SemanticLogger::Appender::Http
|
|
38
38
|
# The Proc must return true or false.
|
39
39
|
def initialize(options, &block)
|
40
40
|
options = options.dup
|
41
|
-
@index = options.delete(:index) ||
|
41
|
+
@index = options.delete(:index) || 'semantic_logger'
|
42
42
|
@type = options.delete(:type) || 'log'
|
43
43
|
options[:url] ||= 'http://localhost:9200'
|
44
44
|
|