logstasher 0.2.4 → 0.2.5

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.
data/.travis.yml CHANGED
@@ -1,6 +1,12 @@
1
1
  language: ruby
2
2
  rvm:
3
- - 2.0
4
3
  - 1.9.3
5
- - 1.9.2
4
+ - 2.0.0
5
+
6
+ env:
7
+ - "RAILS_VERSION=4.0"
8
+ - "RAILS_VERSION=3.2"
9
+ - "RAILS_VERSION=3.1"
10
+ - "RAILS_VERSION=3.0"
11
+
6
12
  script: bundle exec rspec
data/Gemfile CHANGED
@@ -10,5 +10,5 @@ group :test do
10
10
  gem 'growl'
11
11
  gem 'simplecov', :platforms => :mri_19, :require => false
12
12
  gem 'rcov', :platforms => :mri_18
13
- gem 'rails', '~> 3.2.0'
13
+ gem 'rails', "~> #{ENV["RAILS_VERSION"] || "3.2.0"}"
14
14
  end
data/README.md CHANGED
@@ -1,21 +1,58 @@
1
1
  # Logstasher - Awesome Logging for Rails [![Build Status](https://secure.travis-ci.org/shadabahmed/logstasher.png)](https://secure.travis-ci.org/shadabahmed/logstasher)
2
2
 
3
- This gem is heavily inspired from [lograge](https://github.com/roidrage/lograge) but it's focused on one thing and one thing only; making your logs awesome.
3
+ This gem is heavily inspired from [lograge](https://github.com/roidrage/lograge) but it's focused on one thing and one thing only. That's making your logs awesome like this:
4
4
 
5
- How do I do that ?
5
+ [![Awesome Logs](http://i.imgur.com/zZXWQNp.png)](http://i.imgur.com/zZXWQNp.png)
6
6
 
7
- Using these two awesome tools:
8
- * [logstash](http://logstash.net) - Store and index your logs
7
+ How it's done ?
8
+
9
+ By, using these awesome tools:
10
+ * [Logstash](http://logstash.net) - Store and index your logs
9
11
  * [Kibana](http://kibana.org/) - for awesome visualization. This is optional though, and you can use any other visualizer
10
12
 
13
+ To know how to setup these tools - visit my [blog](http://shadabahmed.com/blog/2013/04/30/logstasher-for-awesome-rails-logging)
14
+
15
+ ## About logstasher
16
+
17
+ This gem purely focuses on how to generate logstash compatible logs i.e. *logstash json event format*, without any overhead. Infact, logstasher logs to a separate log file named `logstash_<environment>.log`.
18
+ The reason for this separation:
19
+ * To have a pure json log file
20
+ * Prevent any logger messages(e.g. info) getting into our pure json logs
21
+
22
+ Before **logstasher** :
23
+
24
+ ```
25
+ Started GET "/login" for 10.109.10.135 at 2013-04-30 08:59:01 -0400
26
+ Processing by SessionsController#new as HTML
27
+ Rendered sessions/new.html.haml within layouts/application (4.3ms)
28
+ Rendered shared/_javascript.html.haml (0.6ms)
29
+ Rendered shared/_flashes.html.haml (0.2ms)
30
+ Rendered shared/_header.html.haml (52.9ms)
31
+ Rendered shared/_title.html.haml (0.2ms)
32
+ Rendered shared/_footer.html.haml (0.2ms)
33
+ Completed 200 OK in 532ms (Views: 62.4ms | ActiveRecord: 0.0ms | ND API: 0.0ms)
34
+ ```
35
+
36
+ After **logstasher**:
37
+
38
+ ```
39
+ {"@source":"unknown","@tags":["request"],"@fields":{"method":"GET","path":"/","format":"html","controller":"file_servers"
40
+ ,"action":"index","status":200,"duration":28.34,"view":25.96,"db":0.88,"ip":"127.0.0.1","route":"file_servers#index",
41
+ "parameters":"","ndapi_time":null,"uuid":"e81ecd178ed3b591099f4d489760dfb6","user":"shadab_ahmed@abc.com",
42
+ "site":"internal"},"@timestamp":"2013-04-30T13:00:46.354500+00:00"}
43
+ ```
44
+
45
+ By default, the older format rails request logs are disabled, though you can enable them.
46
+
11
47
  ## Installation
12
48
 
13
49
  In your Gemfile:
14
50
 
15
51
  gem 'logstasher'
16
52
 
17
- ### Configure your \<environment\>.rb e.g. development.rb
53
+ ### Configure your `<environment>.rb` e.g. `development.rb`
18
54
 
55
+ # Enable the logstasher logs for the current environment
19
56
  config.logstasher.enabled = true
20
57
 
21
58
  # This line is optional if you do not want to supress app logs in your <environment>.log
@@ -23,22 +60,22 @@ In your Gemfile:
23
60
 
24
61
  ## Adding custom fields to the log
25
62
 
26
- Since some fields are very specific to your application for e.g. *user_name*, it is left upto you to add them. Here's how to add those to the logs:
63
+ Since some fields are very specific to your application for e.g. *user_name*, so it is left upto you, to add them. Here's how to add those fields to the logs:
27
64
 
28
- # In config/initializers/logstasher.rb
65
+ # Create a file - config/initializers/logstasher.rb
29
66
 
30
67
  if LogStasher.enabled
31
68
  LogStasher.add_custom_fields do |fields|
32
69
  fields[:user] = current_user && current_user.mail
33
70
  fields[:site] = request.path =~ /^\/api/ ? 'api' : 'user'
34
71
 
35
- # If you are using custom instrumentation, just add those to logstasher custom fields
72
+ # If you are using custom instrumentation, just add it to logstasher custom fields
36
73
  LogStasher.custom_fields << :myapi_runtime
37
74
  end
38
75
  end
39
76
 
40
77
  ## Versions
41
- All versions require Rails 3.0.x and higher and Ruby 1.9.2+
78
+ All versions require Rails 3.0.x and higher and Ruby 1.9.2+. Tested on Rails 4 and Ruby 2.0
42
79
 
43
80
  ## Development
44
81
  - Run tests - `rake`
@@ -46,4 +83,4 @@ All versions require Rails 3.0.x and higher and Ruby 1.9.2+
46
83
 
47
84
  ## Copyright
48
85
 
49
- Copyright (c) 2013 Shadab Ahmed, released under the MIT license
86
+ Copyright (c) 2013 Shadab Ahmed, released under the MIT license
@@ -1,3 +1,3 @@
1
1
  module LogStasher
2
- VERSION = "0.2.4"
2
+ VERSION = "0.2.5"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logstasher
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.4
4
+ version: 0.2.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-05-31 00:00:00.000000000 Z
12
+ date: 2013-07-07 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: logstash-event
@@ -113,7 +113,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
113
113
  version: '0'
114
114
  segments:
115
115
  - 0
116
- hash: 4025420687669343642
116
+ hash: 66757699131384912
117
117
  required_rubygems_version: !ruby/object:Gem::Requirement
118
118
  none: false
119
119
  requirements:
@@ -122,7 +122,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
122
122
  version: '0'
123
123
  segments:
124
124
  - 0
125
- hash: 4025420687669343642
125
+ hash: 66757699131384912
126
126
  requirements: []
127
127
  rubyforge_project: logstasher
128
128
  rubygems_version: 1.8.25