stackify-ruby-logging 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: ef27d23139a5d77ae5748f4e2767e909eb16acc1
4
+ data.tar.gz: a96afa19dda182aa2142005a819147176a62281b
5
+ SHA512:
6
+ metadata.gz: 432abc2a6b37ccbd643050c3798c5cb67c21666a1c846fcf64d9d0f42a8b1dd4ff3334c93893593ba8e2a7ae5b546a95eb4ced7715e2670d8114e6a980bfdd61
7
+ data.tar.gz: 6da9de5bdd93afee4dd41b8d33dd73081fd0bd02b9c8b98912e6da0ac5ee9685cfd634cf7eda4eb4d255b253bfa02d93a0af5df45e5a7800aaa59ac080ea15bc
data/.gitignore ADDED
@@ -0,0 +1,15 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /_yardoc/
4
+ /coverage/
5
+ /doc/
6
+ /pkg/
7
+ /spec/reports/
8
+ /tmp/
9
+
10
+ # rspec failure tracking
11
+ .rspec_status
12
+
13
+ # ide
14
+ .idea
15
+
data/.rspec ADDED
@@ -0,0 +1,3 @@
1
+ --format documentation
2
+ --color
3
+ --require spec_helper
data/.travis.yml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ sudo: false
3
+ language: ruby
4
+ cache: bundler
5
+ rvm:
6
+ - 2.0.0
7
+ before_install: gem install bundler -v 1.17.1
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "https://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in stackify-ruby-logging.gemspec
4
+ gemspec
data/Gemfile.lock ADDED
@@ -0,0 +1,41 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ stackify-ruby-logging (1.0.0)
5
+ stackify-api-ruby (~> 1.0)
6
+
7
+ GEM
8
+ remote: https://rubygems.org/
9
+ specs:
10
+ diff-lcs (1.3)
11
+ faraday (0.15.4)
12
+ multipart-post (>= 1.2, < 3)
13
+ multipart-post (2.0.0)
14
+ rake (10.5.0)
15
+ rspec (3.8.0)
16
+ rspec-core (~> 3.8.0)
17
+ rspec-expectations (~> 3.8.0)
18
+ rspec-mocks (~> 3.8.0)
19
+ rspec-core (3.8.0)
20
+ rspec-support (~> 3.8.0)
21
+ rspec-expectations (3.8.2)
22
+ diff-lcs (>= 1.2.0, < 2.0)
23
+ rspec-support (~> 3.8.0)
24
+ rspec-mocks (3.8.0)
25
+ diff-lcs (>= 1.2.0, < 2.0)
26
+ rspec-support (~> 3.8.0)
27
+ rspec-support (3.8.0)
28
+ stackify-api-ruby (1.0.12)
29
+ faraday (~> 0.8)
30
+
31
+ PLATFORMS
32
+ ruby
33
+
34
+ DEPENDENCIES
35
+ bundler (~> 1.17)
36
+ rake (~> 10.0)
37
+ rspec (~> 3.0)
38
+ stackify-ruby-logging!
39
+
40
+ BUNDLED WITH
41
+ 1.17.3
data/LICENSE.md ADDED
@@ -0,0 +1,62 @@
1
+ Stackify Ruby Logging LICENSE
2
+ ---
3
+
4
+ Certain inventions disclosed in this file may be claimed within patents owned or patent applications filed by
5
+ Stackify, LLC (“Stackify”) or third parties.
6
+
7
+ Stackify grants you a revocable, non-exclusive, non-transferable, limited license to download, install and use this
8
+ Stackify Ruby Logging package (“Application”) strictly in accordance with the terms of this Agreement and the terms found
9
+ at https://stackify.com/terms-conditions.
10
+
11
+ You agree not to, and you will not permit others to: license, sell, rent, lease, assign, distribute, transmit, host,
12
+ outsource, disclose or otherwise commercially exploit the Application or make the Application available to any third
13
+ party; modify, make derivative works of, disassemble, decrypt, reverse compile or reverse engineer any part of the
14
+ Application; or remove, alter or obscure any proprietary notice (including any notice of copyright or trademark) of
15
+ Stackify or its affiliates, partners, suppliers or the licensors of the Application.
16
+
17
+ You may install, execute, and distribute these files and their contents only in conjunction with your direct use of
18
+ Stackify’s services. These files and their contents shall not be used in conjunction with any other product or
19
+ software, including but not limited to those that may compete with any Stackify product, feature, or software. As a
20
+ condition to the foregoing grant, you must provide this notice along with each copy you distribute and you must not
21
+ remove, alter, or obscure this notice.
22
+
23
+ The Application, including without limitation all copyrights, patents, trademarks, trade secrets and other intellectual
24
+ property rights are, and shall remain, the sole and exclusive property of Stackify. Any feedback, comments, ideas,
25
+ code, pull requests, improvements or suggestions (collectively, "Suggestions") provided by you to Stackify with respect
26
+ to the Application shall remain the sole and exclusive property of Stackify. Stackify shall be free to use, copy,
27
+ modify, publish, or redistribute the Suggestions for any purpose and in any way without any credit or any compensation
28
+ to you.
29
+
30
+ Stackify reserves the right to modify, suspend or discontinue, temporarily or permanently, the Application or any
31
+ service to which it connects, with or without notice and without liability to you.
32
+
33
+ Stackify may from time to time provide enhancements or improvements to the features/functionality of the Application,
34
+ which may include patches, bug fixes, updates, upgrades and other modifications ("Updates"). Updates may modify or
35
+ delete certain features and/or functionalities of the Application. You agree that Stackify has no obligation to (i)
36
+ provide any Updates, or (ii) continue to provide or enable any particular features and/or functionalities of the
37
+ Application to you. You further agree that all Updates will be (i) deemed to constitute an integral part of the
38
+ Application, and (ii) subject to the terms and conditions of this Agreement.
39
+
40
+ All other use, reproduction, modification, distribution, or other exploitation of these files is strictly prohibited,
41
+ except as may be set forth in a separate written license agreement between you and Stackify. The terms of any such
42
+ license agreement will control over this notice. The license stated above will be automatically terminated and
43
+ revoked if you exceed its scope or violate any of the terms of this notice.
44
+
45
+ Upon termination of this Agreement, you shall cease all use of the Application and delete all copies of the
46
+ Application from your mobile device or from your computer.
47
+
48
+ Termination of this Agreement will not limit any of Stackify LLC's rights or remedies at law or in equity in case of
49
+ breach by you (during the term of this Agreement) of any of your obligations under the present Agreement.
50
+
51
+ You agree to indemnify and hold Stackify LLC and its parents, subsidiaries, affiliates, officers, employees, agents,
52
+ partners and licensors (if any) harmless from any claim or demand, including reasonable attorneys' fees, due to or
53
+ arising out of your: (a) use of the Application; (b) violation of this Agreement or any law or regulation; or (c)
54
+ violation of any right of a third party.
55
+
56
+ Unless otherwise expressly agreed by Stackify in a separate written license agreement, these files are provided
57
+ AS IS, WITHOUT WARRANTY OF ANY KIND, including without any implied warranties of MERCHANTABILITY, FITNESS FOR A
58
+ PARTICULAR PURPOSE, TITLE, or NON-INFRINGEMENT. As a condition to your use of these files, you are solely responsible
59
+ for such use. Stackify will have no liability to you for direct, indirect, consequential, incidental, special, or
60
+ punitive damages or for lost profits or data.
61
+
62
+
data/README.md ADDED
@@ -0,0 +1,93 @@
1
+ # stackify-ruby-logging
2
+
3
+ Logging handler for sending log messages and exceptions to Stackify. Logging >=2.0.0 <2.2.2 is supported.
4
+
5
+ ## Installation
6
+
7
+ Add this line to your application's Gemfile:
8
+
9
+ ```
10
+ gem 'logging'
11
+ gem 'stackify-ruby-logging'
12
+ ```
13
+
14
+ And then execute:
15
+ ```
16
+ $ bundle install
17
+ ```
18
+ ## Note
19
+ This stackify-ruby-logging gem will work and tested for the following Ruby versions:
20
+ 2.1.x, 2.3.x, 2.4.x, 2.5.x
21
+ However this gem won't work in ruby version such as 1.9.x/2.0.x.
22
+
23
+ ## Usage
24
+ ### Rails
25
+ If your application is based on Rails you will add the script below in config/application.rb. For example:
26
+ ```
27
+ module SampleRailsApp
28
+ class Application < Rails::Application
29
+ # Initialize configuration defaults for originally generated Rails version.
30
+ config.load_defaults 5.2
31
+ ...
32
+ Other code goes here...
33
+ ...
34
+ require 'logging'
35
+ Logging.init
36
+
37
+ logger = Logging.logger['sample_logger']
38
+ logger = Stackify::LoggerProxy.new(logger)
39
+ logger.add_appenders \
40
+ Logging.appenders.stdout, # output log messages to stdout, you can remove this line if you don't want to display to stdout
41
+ Logging.appenders.file(File.join('log', 'development.log')), # output log messages to a log file
42
+ Logging.appenders.stackify( # output log messages to Stackify
43
+ :api_key => '1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ',
44
+ :app_name => 'rails-app',
45
+ :environment => :development,
46
+ :log_level => :info
47
+ )
48
+ config.logger = logger
49
+ end
50
+ end
51
+ ```
52
+
53
+ ### Non-Rails
54
+ For using stackify-ruby-logging gem within any Ruby application such as Sinatra add to top of your main file:
55
+ ```
56
+ require 'logging'
57
+ Logging.init
58
+
59
+ logger = Logging.logger['sample_logger']
60
+ logger = Stackify::LoggerProxy.new(logger)
61
+ logger.add_appenders \
62
+ Logging.appenders.stdout,
63
+ Logging.appenders.file(File.join('log', 'development.log')),
64
+ Logging.appenders.stackify(
65
+ :api_key => '1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ',
66
+ :app_name => 'sinatra-app',
67
+ :environment => :development,
68
+ :log_level => :info
69
+ )
70
+ ```
71
+
72
+ ### Log level
73
+ You can use the following log levels: :info, :debug, :warn, :error & :fatal.
74
+
75
+ ## Troubleshooting
76
+ If there are problems, you can enable internal logging of the stackify-ruby-logging. Add debug_log option see the example below:
77
+ ```
78
+ require 'logging'
79
+ Logging.init
80
+
81
+ logger = Logging.logger['sample_logger']
82
+ logger = Stackify::LoggerProxy.new(logger)
83
+ logger.add_appenders \
84
+ Logging.appenders.stdout,
85
+ Logging.appenders.file(File.join('log', 'development.log')),
86
+ Logging.appenders.stackify(
87
+ :api_key => '1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ',
88
+ :app_name => 'sinatra-app',
89
+ :environment => :development,
90
+ :log_level => :info,
91
+ :debug_log => File.join('log', 'stackify.log')
92
+ )
93
+ ```
data/Rakefile ADDED
@@ -0,0 +1,6 @@
1
+ require "bundler/gem_tasks"
2
+ require "rspec/core/rake_task"
3
+
4
+ RSpec::Core::RakeTask.new(:spec)
5
+
6
+ task :default => :spec
@@ -0,0 +1,38 @@
1
+ require 'stackify-api-ruby'
2
+
3
+ module Logging
4
+ module Appenders
5
+ def self.stackify(*args)
6
+ return ::Logging::Appenders::StackifyRubyLogging if args.empty?
7
+ ::Logging::Appenders::StackifyRubyLogging.new(*args)
8
+ end
9
+
10
+ class StackifyRubyLogging < ::Logging::Appender
11
+ def initialize(opts = {})
12
+ super(opts[:app_name], opts)
13
+ logger = ::Logger.new(opts[:debug_log])
14
+ version_190 = '1.9.0'
15
+ version_200 = '2.0.0'
16
+ if Gem::Version.new(RUBY_VERSION) <= Gem::Version.new(version_190) ||
17
+ Gem::Version.new(RUBY_VERSION) <= Gem::Version.new(version_200)
18
+ error_msg = 'Error: stackify-ruby-logging gem is currently not compatible in ruby version 1.9.x/2.0.x'
19
+ puts error_msg
20
+ logger.error error_msg
21
+ else
22
+ # Setup the configuration for stackify-api-ruby
23
+ if defined? Stackify
24
+ Stackify.setup do |config|
25
+ config.api_key = opts[:api_key]
26
+ config.env = opts[:environment] || :development
27
+ config.app_name = opts[:app_name] || 'default'
28
+ config.log_level = opts[:log_level] || :debug
29
+ config.mode = :logging
30
+ config.logger = logger
31
+ end
32
+ Stackify.run
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,15 @@
1
+ module Logging
2
+ module Plugins
3
+ module Stackify
4
+ extend self
5
+
6
+ VERSION = '1.0.0'.freeze
7
+
8
+ # This method will be called by the Logging framework when it first
9
+ # initializes. Here we require the stackify appender code.
10
+ def initialize_stackify
11
+ require File.expand_path('../../appenders/stackify', __FILE__)
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,8 @@
1
+ require 'logging/stackify_ruby_logging/version'
2
+
3
+ module Logging
4
+ module StackifyRubyLogging
5
+ class Error < StandardError; end
6
+ # Your code goes here...
7
+ end
8
+ end
@@ -0,0 +1,5 @@
1
+ module Logging
2
+ module StackifyRubyLogging
3
+ VERSION = "1.0.0"
4
+ end
5
+ end
@@ -0,0 +1,28 @@
1
+
2
+ lib = File.expand_path("../lib", __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require "logging/stackify_ruby_logging/version"
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "stackify-ruby-logging"
8
+ spec.version = Logging::StackifyRubyLogging::VERSION
9
+ spec.authors = ['Stackify']
10
+ spec.email = ['support@stackify.com']
11
+ spec.summary = 'Stackify Ruby Logging'
12
+ spec.homepage = 'http://www.stackify.com'
13
+ spec.license = 'Stackify'
14
+
15
+ # Specify which files should be added to the gem when it is released.
16
+ # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
17
+ spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
18
+ `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
19
+ end
20
+ spec.bindir = "exe"
21
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
22
+ spec.require_paths = ["lib"]
23
+
24
+ spec.add_development_dependency "bundler", "~> 1.17"
25
+ spec.add_development_dependency "rake", "~> 10.0"
26
+ spec.add_development_dependency "rspec", "~> 3.0"
27
+ spec.add_runtime_dependency 'stackify-api-ruby', '~> 1.0'
28
+ end
metadata ADDED
@@ -0,0 +1,113 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: stackify-ruby-logging
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Stackify
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2019-02-15 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.17'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.17'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '10.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '3.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '3.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: stackify-api-ruby
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '1.0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '1.0'
69
+ description:
70
+ email:
71
+ - support@stackify.com
72
+ executables: []
73
+ extensions: []
74
+ extra_rdoc_files: []
75
+ files:
76
+ - ".gitignore"
77
+ - ".rspec"
78
+ - ".travis.yml"
79
+ - Gemfile
80
+ - Gemfile.lock
81
+ - LICENSE.md
82
+ - README.md
83
+ - Rakefile
84
+ - lib/logging/appenders/stackify.rb
85
+ - lib/logging/plugins/stackify.rb
86
+ - lib/logging/stackify-ruby-logging.rb
87
+ - lib/logging/stackify_ruby_logging/version.rb
88
+ - stackify-ruby-logging.gemspec
89
+ homepage: http://www.stackify.com
90
+ licenses:
91
+ - Stackify
92
+ metadata: {}
93
+ post_install_message:
94
+ rdoc_options: []
95
+ require_paths:
96
+ - lib
97
+ required_ruby_version: !ruby/object:Gem::Requirement
98
+ requirements:
99
+ - - ">="
100
+ - !ruby/object:Gem::Version
101
+ version: '0'
102
+ required_rubygems_version: !ruby/object:Gem::Requirement
103
+ requirements:
104
+ - - ">="
105
+ - !ruby/object:Gem::Version
106
+ version: '0'
107
+ requirements: []
108
+ rubyforge_project:
109
+ rubygems_version: 2.5.2.3
110
+ signing_key:
111
+ specification_version: 4
112
+ summary: Stackify Ruby Logging
113
+ test_files: []