sysloggly 0.3.1 → 0.3.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 98ecd9a93f236bd387e5ce009c65f2fa4ef8fbc2
4
- data.tar.gz: 8da2bee9728ae5138bfaf7001bd6f26ad6f10cfc
3
+ metadata.gz: aa71e8a9aa3a703e22d2697f224e7a9a28eae455
4
+ data.tar.gz: cb7bcaf874692f0da1d854a36e33399bcc59af05
5
5
  SHA512:
6
- metadata.gz: 3e7a9264854774c4d986bb187452aa98bd52f068c4e438b60b0ee3f34a1d286b47dd6a87b2f12ad09ceb022165d9c623f01757b687027e600071b12f9f56344b
7
- data.tar.gz: 7204b2539253551927a0e097a3f98395cddb39b44dd4cdc955859b6a64240bb7da78b827b8c064420618aec71ad43a5740457d9cd6b49505bd47265e8c7e3e98
6
+ metadata.gz: 1010af1fc3672ac6be8622c63de69d5dbb08f245bf65db15d97509882e0b1ec06c7626b44e169c2c2aa4471dd02cecabee944abd5d8665a5b3b065de6bbc9e08
7
+ data.tar.gz: 2e29f9c69d8a90699094bd3928cd4ed6e81fb3ad078a2c36435fc8253125ce1b5fc2fbc08c442450213267d14a888e7cab91ba8dd463eade5a75ac0c2fe3367d
data/.gitignore ADDED
@@ -0,0 +1,4 @@
1
+ pkg/*
2
+ .bundle
3
+ .ruby-version
4
+ Gemfile.lock
data/.rspec ADDED
@@ -0,0 +1,3 @@
1
+ --colour
2
+ --format progress
3
+ --profile
data/CHANGELOG.md ADDED
@@ -0,0 +1,23 @@
1
+ ## Changelog
2
+
3
+ #### 0.3.2
4
+ - [new] option `ignore_user_agents` with default "Pingdom.com_bot"
5
+
6
+ #### 0.3.1
7
+ - [fix] Networklog (logging via udp)
8
+
9
+ #### 0.3.0
10
+ - refactoring Filelog client for non-blocking file access
11
+ - [new] choose between SimpleFormatter and SyslogFormatter
12
+
13
+ #### 0.2.1
14
+ - cleanup
15
+
16
+ #### 0.2.0
17
+ - complete refactoring, removed syslogger gem and added own implementation based
18
+ on logglier
19
+ - uses file logger (default)
20
+ - able to switch to sys logger, which uses udp socket
21
+
22
+ #### 0.1.0
23
+ - initial
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "https://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in sysloggly.gemspec
4
+ gemspec
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2017 Jörgen Dahlke
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,44 @@
1
+ # Sysloggly
2
+
3
+ #### Provides a very opinionated Lograge and Syslog integration for Rails apps.
4
+
5
+
6
+ ## Installation
7
+
8
+ Include **sysloggly** in your Gemfile.
9
+
10
+ ```ruby
11
+ gem 'sysloggly'
12
+ ```
13
+
14
+ ## Configuration
15
+
16
+ ```ruby
17
+ Sysloggly.configure do |config|
18
+ config.env = Rails.env # default
19
+
20
+ # for filelog # default
21
+ config.uri = "file://#{Rails.root.join('log','sysloggly.log')}"
22
+
23
+ # for syslog '[udp|tcp]://<hostname>:<port>/<facility>'
24
+ config.uri = "udp://127.0.0.1:514/23"
25
+
26
+ config.ignore_user_agents = ["Pingdom.com_bot"] # default
27
+ end
28
+
29
+ ```
30
+
31
+ ## Usage
32
+
33
+ In most cases you have to do nothing else.
34
+ However you can use `Sysloggly.logger` to log output JSON directly to syslog.
35
+
36
+ ```ruby
37
+ Sysloggly.logger.info({ foo: 'foo', bar: 'bar'})
38
+ ```
39
+
40
+
41
+ ## Thanks
42
+
43
+ Greatly inspired by the [logglier](https://github.com/freeformz/logglier) gem.
44
+ And thanks to [lograge](https://github.com/roidrage/lograge), one of the most helpful Rails gems out there.
data/Rakefile ADDED
@@ -0,0 +1,5 @@
1
+ require 'bundler/gem_tasks'
2
+ require 'rspec/core/rake_task'
3
+
4
+ RSpec::Core::RakeTask.new do |t|
5
+ end
data/lib/sysloggly.rb CHANGED
@@ -17,7 +17,9 @@ module Sysloggly
17
17
  class UnsupportedScheme < ArgumentError; end
18
18
  class UnknownFacility < ArgumentError; end
19
19
 
20
- mattr_accessor :progname, :env, :uri, :logger
20
+ mattr_accessor :progname, :env, :uri
21
+ mattr_accessor :logger
22
+ mattr_accessor :ignore_user_agents
21
23
 
22
24
  def self.configure
23
25
  yield self
@@ -1,8 +1,10 @@
1
1
  #
2
- # Sysloggly default configuration:
3
- # @config progname: Rails app name
4
- # @config env: Rails env
5
- # @config logger: file log to sysloggly.log in the rails log directory
2
+ # Sysloggly default configuration for Rails
3
+ #
4
+ # @config [progname] Rails app name
5
+ # @config [env] Rails env
6
+ # @config [logger] file log to log/sysloggly.log
7
+ # @config [ignore_user_agents] ignores Pingdom bot
6
8
  #
7
9
  module Sysloggly
8
10
  # @private
@@ -11,7 +13,8 @@ module Sysloggly
11
13
  Sysloggly.configure do |config|
12
14
  config.progname ||= app.class.parent_name
13
15
  config.env ||= Rails.env
14
- config.uri ||= "file://#{Rails.root.join('log','sysloggly.log')}"
16
+ config.uri ||= "file://#{Rails.root.join("log","sysloggly.log")}"
17
+ config.ignore_user_agents ||= ["Pingdom.com_bot"]
15
18
 
16
19
  config.logger = Sysloggly.new(config.uri, {
17
20
  env: config.env,
@@ -25,10 +28,20 @@ module Sysloggly
25
28
  config.lograge.formatter = Lograge::Formatters::Json.new
26
29
  config.lograge.keep_original_rails_log = true
27
30
  config.lograge.logger = Sysloggly.logger
31
+ config.lograge.custom_payload do |controller|
32
+ {
33
+ user_agent: controller.request.user_agent
34
+ }
35
+ end
36
+ config.lograge.ignore_custom = lambda do |event|
37
+ custom_payload = event.payload[:custom_payload] || {}
38
+ user_agent = custom_payload[:user_agent] || ""
39
+ Sysloggly.ignore_user_agents.any? { |pattern| user_agent.include?(pattern) }
40
+ end
28
41
  end
42
+
29
43
  Lograge.setup(app)
30
44
 
31
- # load extensions
32
45
  require 'sysloggly/extensions/honeybadger' if defined?(Honeybadger)
33
46
  end
34
47
  end
@@ -1,3 +1,3 @@
1
1
  module Sysloggly
2
- VERSION = "0.3.1".freeze
2
+ VERSION = "0.3.2".freeze
3
3
  end
data/sysloggly.gemspec ADDED
@@ -0,0 +1,34 @@
1
+ lib = File.expand_path("../lib", __FILE__)
2
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
+ require "sysloggly/version"
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = "sysloggly"
7
+ spec.version = Sysloggly::VERSION
8
+ spec.licenses = ["MIT"]
9
+ spec.authors = ["Joergen Dahlke"]
10
+ spec.email = ["joergen.dahlke@gmail.com"]
11
+
12
+ spec.homepage = "https://github.com/jdahlke/sysloggly"
13
+ spec.summary = %q{Lograge and Syslog integration for Rails apps.}
14
+ spec.description = %q{Lograge and Syslog integration for Rails apps.}
15
+
16
+ spec.rubyforge_project = "sysloggly"
17
+
18
+ spec.files = `git ls-files -z`.split("\x0").reject do |f|
19
+ f.match(%r{^(test|spec|features)/})
20
+ end
21
+ spec.bindir = "exe"
22
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
23
+ spec.require_paths = ["lib"]
24
+
25
+
26
+ # specify any dependencies here:
27
+ spec.required_ruby_version = "~> 2.0"
28
+ spec.add_runtime_dependency "multi_json"
29
+ spec.add_runtime_dependency "lograge"
30
+
31
+ # specify any development dependencies here:
32
+ spec.add_development_dependency "rspec"
33
+ spec.add_development_dependency "rake"
34
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sysloggly
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.3.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joergen Dahlke
8
8
  autorequire:
9
- bindir: bin
9
+ bindir: exe
10
10
  cert_chain: []
11
- date: 2017-11-17 00:00:00.000000000 Z
11
+ date: 2018-03-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: multi_json
@@ -73,6 +73,13 @@ executables: []
73
73
  extensions: []
74
74
  extra_rdoc_files: []
75
75
  files:
76
+ - ".gitignore"
77
+ - ".rspec"
78
+ - CHANGELOG.md
79
+ - Gemfile
80
+ - LICENSE
81
+ - README.md
82
+ - Rakefile
76
83
  - lib/sysloggly.rb
77
84
  - lib/sysloggly/clients/filelog.rb
78
85
  - lib/sysloggly/clients/networklog.rb
@@ -81,6 +88,7 @@ files:
81
88
  - lib/sysloggly/formatters/syslog_formatter.rb
82
89
  - lib/sysloggly/rails.rb
83
90
  - lib/sysloggly/version.rb
91
+ - sysloggly.gemspec
84
92
  homepage: https://github.com/jdahlke/sysloggly
85
93
  licenses:
86
94
  - MIT