semantic_logger 2.9.2 → 2.10.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
2
  SHA1:
3
- metadata.gz: e5232fd817e451f29ef0c545ec0544773b8dafb3
4
- data.tar.gz: 7b6126eb0d3dc720dc9471c750f01c0c5902271d
3
+ metadata.gz: 0114b0cd9c89056b16e797dad89c995cc0fb9485
4
+ data.tar.gz: f2df244261d122b2967e973380cf94770b24325e
5
5
  SHA512:
6
- metadata.gz: 15d25abc264cde1238938cc805263b63df7b7547cc1632a653b6ea45f77addbe71cbb884e54317b9baa27a6107ab30145ef8d8471f1fe785818fd00568746319
7
- data.tar.gz: c62818a647641c2280839e253d165b77a9643bdecdacbf0745b882c7151e81e6ea5ec382f9c650bd3e75a77a2b499d3293af63a70c132b4ca079b038de4d33a9
6
+ metadata.gz: 2eb3829a86b55f7b0014e72a0c624970f134ebc1e9c25ad7a89298078a4d71a993728ec0817f5205fa3afcd82d96186f5dc2e649cceab1e0502bdbfde3cd7845
7
+ data.tar.gz: 614edca05b62f3de8b48c301c2e059868e607ebea3e4eaa25aacb6fe86e7cde3e83f24fe86b7ca21ac007ff8a96dc217aaaf8c14062e0574003b98876fffcc1c
data/README.md CHANGED
@@ -11,13 +11,16 @@ For complete documentation see: http://reidmorrison.github.io/semantic_logger
11
11
 
12
12
  ## Dependencies
13
13
 
14
- See [.travis.yml](https://github.com/reidmorrison/semantic_logger/.travis.yml) for the list of tested Ruby platforms
14
+ Semantic Logger supports the following Ruby platforms:
15
+ - Ruby 1.9.3, 2.0, 2.1
16
+ - JRuby 1.7
15
17
 
16
18
  The following gems are only required when their corresponding appenders are being used,
17
19
  and are therefore not automatically included by this gem:
18
- - MongoDB Appender: mongo 1.9.2 or above
19
- - Syslog Appender: syslog_protocol 0.9.2 or above
20
- - Syslog Appender to a remote syslogng server over TCP or UDP: resilient_socket 0.5.0 or above
20
+ - MongoDB Appender: gem 'mongo' 1.9.2 or above
21
+ - Syslog Appender: gem 'syslog_protocol' 0.9.2 or above
22
+ - Syslog Appender to a remote syslogng server over TCP or UDP: gem 'resilient_socket' 0.5.0 or above
23
+ - Splunk Appender: gem 'splunk-sdk-ruby'
21
24
 
22
25
  ## Install
23
26
 
@@ -25,8 +28,14 @@ and are therefore not automatically included by this gem:
25
28
 
26
29
  ## Upgrade Notes:
27
30
 
28
- As of SemanticLogger V2.0 the Rails logging is no longer automatically replaced
29
- when including SemanticLogger. Include the [rails_semantic_logger](http://github.com/reidmorrison/rails_semantic_logger)
31
+ ### V2.10
32
+
33
+ Ruby 1.8 is no longer supported, see [Ruby 1.8.7 EOL](https://www.ruby-lang.org/en/news/2014/07/01/eol-for-1-8-7-and-1-9-2/)
34
+
35
+ ### V2.0
36
+
37
+ Rails logging is no longer automatically replaced when including SemanticLogger.
38
+ Include the [rails_semantic_logger](http://github.com/reidmorrison/rails_semantic_logger)
30
39
  gem to replace the Rails default logger with SemanticLogger
31
40
 
32
41
  ## Meta
@@ -40,11 +49,12 @@ This project uses [Semantic Versioning](http://semver.org/).
40
49
 
41
50
  ## Author
42
51
 
43
- Reid Morrison :: reidmo@gmail.com :: @reidmorrison
52
+ [Reid Morrison](https://github.com/reidmorrison) :: @reidmorrison
44
53
 
45
54
  ## Contributors
46
55
 
47
- Marc Bellingrath :: marrrc.b@gmail.com
56
+ * [Marc Bellingrath](https://github.com/marc)
57
+ * [Andrew Medeiros](https://github.com/amedeiros)
48
58
 
49
59
  ## License
50
60
 
@@ -14,6 +14,7 @@ module SemanticLogger
14
14
  autoload :MongoDB, 'semantic_logger/appender/mongodb'
15
15
  autoload :Syslog, 'semantic_logger/appender/syslog'
16
16
  autoload :NewRelic, 'semantic_logger/appender/new_relic'
17
+ autoload :Splunk, 'semantic_logger/appender/splunk'
17
18
  end
18
19
  end
19
20
 
@@ -0,0 +1,56 @@
1
+ require 'splunk-sdk-ruby'
2
+
3
+
4
+ # Recommended not to use the colorized formatter.
5
+
6
+ class SemanticLogger::Appender::Splunk < SemanticLogger::Appender::Base
7
+ attr_reader :config, :index, :service, :service_index
8
+
9
+ # Allow the level for this appender to be overwritten
10
+ # Default: :error
11
+ def initialize(options, level=:error, &block)
12
+ # Parse input options for setting up splunk connection
13
+ parse_options(options)
14
+
15
+ # Connect to splunk. Connect is a synonym for creating a Service by hand and calling login.
16
+ @service = Splunk::connect(@config)
17
+
18
+ # The index we are logging to
19
+ @service_index = @service.indexes[@index]
20
+
21
+ # Pass on the level and custom formatter if supplied
22
+ super(level, &block)
23
+ end
24
+
25
+
26
+ # Log the message to Splunk
27
+ def log(log)
28
+ # Ensure minimum log level is met, and check filter
29
+ return false if (level_index > (log.level_index || 0)) || !include_message?(log)
30
+ # Submit the log message
31
+ @service_index.submit(formatter.call(log))
32
+ true
33
+ end
34
+
35
+ private
36
+
37
+ def parse_options(options)
38
+ @config = {
39
+ scheme: options[:scheme] || :https,
40
+ host: options[:host] || 'localhost',
41
+ port: options[:port] || 8089,
42
+ username: options[:username],
43
+ password: options[:password]
44
+ }
45
+
46
+ @index = options[:index]
47
+
48
+ if @config[:username].nil?
49
+ raise ArgumentError, 'Must supply a username.'
50
+ elsif @config[:password].nil?
51
+ raise ArgumentError, 'Must supply a password.'
52
+ elsif @index.nil?
53
+ raise ArgumentError, 'Must supply an index.'
54
+ end
55
+ end
56
+ end
@@ -1,3 +1,3 @@
1
1
  module SemanticLogger #:nodoc
2
- VERSION = "2.9.2"
2
+ VERSION = "2.10.0"
3
3
  end
@@ -0,0 +1,63 @@
1
+ # Allow test to be run in-place without requiring a gem install
2
+ $LOAD_PATH.unshift File.dirname(__FILE__) + '/../lib'
3
+
4
+ require 'rubygems'
5
+ require 'test/unit'
6
+ require 'mocha/setup'
7
+ require 'shoulda'
8
+ require 'logger'
9
+ require 'semantic_logger'
10
+
11
+ # Unit Test for SemanticLogger::Appender::Splunk
12
+ #
13
+ class AppenderSplunkTest < Test::Unit::TestCase
14
+ context SemanticLogger::Appender::Splunk do
15
+
16
+ context '#parse_options' do
17
+ context 'argument errors' do
18
+ should 'raise argument error for missing username' do
19
+ error = assert_raises ArgumentError do
20
+ SemanticLogger::Appender::Splunk.new({})
21
+ end
22
+
23
+ assert_equal 'Must supply a username.', error.message
24
+ end
25
+
26
+ should 'raise argument error for missing password' do
27
+ error = assert_raises ArgumentError do
28
+ SemanticLogger::Appender::Splunk.new(username: 'username')
29
+ end
30
+
31
+ assert_equal 'Must supply a password.', error.message
32
+ end
33
+
34
+ should 'raise argument error for missing index' do
35
+ error = assert_raises ArgumentError do
36
+ SemanticLogger::Appender::Splunk.new(username: 'username', password: 'password')
37
+ end
38
+
39
+ assert_equal 'Must supply an index.', error.message
40
+ end
41
+ end
42
+
43
+ context 'set default values' do
44
+ # Stub the splunk connect call, and index call.
45
+ setup do
46
+ Splunk.expects(:connect).returns(Splunk::Service.new({}))
47
+ Splunk::Service.any_instance.expects(:indexes).returns({})
48
+ end
49
+
50
+ should 'have default values' do
51
+ appender = SemanticLogger::Appender::Splunk.new(username: 'username', password: 'password', index: 'index')
52
+ config = appender.config
53
+ # Default host
54
+ assert_equal 'localhost', config[:host]
55
+ # Default pot
56
+ assert_equal 8089, config[:port]
57
+ # Default scheme
58
+ assert_equal :https, config[:scheme]
59
+ end
60
+ end
61
+ end
62
+ end
63
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: semantic_logger
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.9.2
4
+ version: 2.10.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Reid Morrison
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-07-24 00:00:00.000000000 Z
11
+ date: 2014-07-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sync_attr
@@ -54,6 +54,7 @@ files:
54
54
  - lib/semantic_logger/appender/file.rb
55
55
  - lib/semantic_logger/appender/mongodb.rb
56
56
  - lib/semantic_logger/appender/new_relic.rb
57
+ - lib/semantic_logger/appender/splunk.rb
57
58
  - lib/semantic_logger/appender/syslog.rb
58
59
  - lib/semantic_logger/appender/wrapper.rb
59
60
  - lib/semantic_logger/base.rb
@@ -65,6 +66,7 @@ files:
65
66
  - test/appender_file_test.rb
66
67
  - test/appender_mongodb_test.rb
67
68
  - test/appender_new_relic_test.rb
69
+ - test/appender_splunk_test.rb
68
70
  - test/appender_syslog_test.rb
69
71
  - test/appender_wrapper_test.rb
70
72
  - test/loggable_test.rb
@@ -99,6 +101,7 @@ test_files:
99
101
  - test/appender_file_test.rb
100
102
  - test/appender_mongodb_test.rb
101
103
  - test/appender_new_relic_test.rb
104
+ - test/appender_splunk_test.rb
102
105
  - test/appender_syslog_test.rb
103
106
  - test/appender_wrapper_test.rb
104
107
  - test/loggable_test.rb