logstasher 0.4.1 → 0.4.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.
- checksums.yaml +8 -8
 - data/lib/logstasher.rb +26 -21
 - data/lib/logstasher/version.rb +1 -1
 - metadata +2 -2
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,15 +1,15 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            !binary "U0hBMQ==":
         
     | 
| 
       3 
3 
     | 
    
         
             
              metadata.gz: !binary |-
         
     | 
| 
       4 
     | 
    
         
            -
                 
     | 
| 
      
 4 
     | 
    
         
            +
                MDA5MTJiNzE4OTM1OGI3MmMzNzk4ZWRhNWQzNDE3NmI5NzNkYWUyNw==
         
     | 
| 
       5 
5 
     | 
    
         
             
              data.tar.gz: !binary |-
         
     | 
| 
       6 
     | 
    
         
            -
                 
     | 
| 
      
 6 
     | 
    
         
            +
                NTE1NDBhZjAxYzVkNjQ5N2IyZTU0ODczOWZjZjgxNzUwMzE4ZDgxNw==
         
     | 
| 
       7 
7 
     | 
    
         
             
            SHA512:
         
     | 
| 
       8 
8 
     | 
    
         
             
              metadata.gz: !binary |-
         
     | 
| 
       9 
     | 
    
         
            -
                 
     | 
| 
       10 
     | 
    
         
            -
                 
     | 
| 
       11 
     | 
    
         
            -
                 
     | 
| 
      
 9 
     | 
    
         
            +
                ZTk5NjhiNzNkOWViYWNjYjdlNWY1MTdkZDgwZDEyNDRmMDBlOGFjMTY0Nzdl
         
     | 
| 
      
 10 
     | 
    
         
            +
                NTlmMzhjODc1ZWVlMDhiYzExZjNlZjEzMGY1NGVlYzk4YzYzMjgxNmYzY2Y0
         
     | 
| 
      
 11 
     | 
    
         
            +
                ZjhhZDY0MTZhOTEwZGI2MDllZDFjNDk0ZDQ5ODZkZTE0YzMxZTM=
         
     | 
| 
       12 
12 
     | 
    
         
             
              data.tar.gz: !binary |-
         
     | 
| 
       13 
     | 
    
         
            -
                 
     | 
| 
       14 
     | 
    
         
            -
                 
     | 
| 
       15 
     | 
    
         
            -
                 
     | 
| 
      
 13 
     | 
    
         
            +
                MzZjYzQzMTY0ODM0MzBmNGQ0NmJiOTJhZDVlNzViOWM1ODk4NmY3YWY0NzE1
         
     | 
| 
      
 14 
     | 
    
         
            +
                NGU3YzBhOTRmMDBkMTA1Y2MxYzNkNmNkNWM0ZTkyNjc1YmRjODliYTg0NDY3
         
     | 
| 
      
 15 
     | 
    
         
            +
                YmYzNTU4YzcxMjQzYzFjYzg4ZGFkOTg5NTczN2VjZWM1ZDkwODg=
         
     | 
    
        data/lib/logstasher.rb
    CHANGED
    
    | 
         @@ -5,10 +5,10 @@ require 'active_support/core_ext/string/inflections' 
     | 
|
| 
       5 
5 
     | 
    
         
             
            require 'active_support/ordered_options'
         
     | 
| 
       6 
6 
     | 
    
         | 
| 
       7 
7 
     | 
    
         
             
            module LogStasher
         
     | 
| 
       8 
     | 
    
         
            -
               
     | 
| 
       9 
     | 
    
         
            -
               
     | 
| 
      
 8 
     | 
    
         
            +
              extend self
         
     | 
| 
      
 9 
     | 
    
         
            +
              attr_accessor :logger, :enabled
         
     | 
| 
       10 
10 
     | 
    
         | 
| 
       11 
     | 
    
         
            -
              def  
     | 
| 
      
 11 
     | 
    
         
            +
              def remove_existing_log_subscriptions
         
     | 
| 
       12 
12 
     | 
    
         
             
                ActiveSupport::LogSubscriber.log_subscribers.each do |subscriber|
         
     | 
| 
       13 
13 
     | 
    
         
             
                  case subscriber
         
     | 
| 
       14 
14 
     | 
    
         
             
                    when ActionView::LogSubscriber
         
     | 
| 
         @@ -19,7 +19,7 @@ module LogStasher 
     | 
|
| 
       19 
19 
     | 
    
         
             
                end
         
     | 
| 
       20 
20 
     | 
    
         
             
              end
         
     | 
| 
       21 
21 
     | 
    
         | 
| 
       22 
     | 
    
         
            -
              def  
     | 
| 
      
 22 
     | 
    
         
            +
              def unsubscribe(component, subscriber)
         
     | 
| 
       23 
23 
     | 
    
         
             
                events = subscriber.public_methods(false).reject{ |method| method.to_s == 'call' }
         
     | 
| 
       24 
24 
     | 
    
         
             
                events.each do |event|
         
     | 
| 
       25 
25 
     | 
    
         
             
                  ActiveSupport::Notifications.notifier.listeners_for("#{event}.#{component}").each do |listener|
         
     | 
| 
         @@ -30,66 +30,71 @@ module LogStasher 
     | 
|
| 
       30 
30 
     | 
    
         
             
                end
         
     | 
| 
       31 
31 
     | 
    
         
             
              end
         
     | 
| 
       32 
32 
     | 
    
         | 
| 
       33 
     | 
    
         
            -
              def  
     | 
| 
      
 33 
     | 
    
         
            +
              def add_default_fields_to_payload(payload, request)
         
     | 
| 
       34 
34 
     | 
    
         
             
                payload[:ip] = request.remote_ip
         
     | 
| 
       35 
35 
     | 
    
         
             
                payload[:route] = "#{request.params[:controller]}##{request.params[:action]}"
         
     | 
| 
       36 
36 
     | 
    
         
             
                payload[:parameters] = payload[:params].except(*ActionController::LogSubscriber::INTERNAL_PARAMS)
         
     | 
| 
       37 
37 
     | 
    
         
             
                self.custom_fields += [:ip, :route, :parameters]
         
     | 
| 
       38 
38 
     | 
    
         
             
              end
         
     | 
| 
       39 
39 
     | 
    
         | 
| 
       40 
     | 
    
         
            -
              def  
     | 
| 
      
 40 
     | 
    
         
            +
              def add_custom_fields(&block)
         
     | 
| 
       41 
41 
     | 
    
         
             
                ActionController::Metal.send(:define_method, :logtasher_add_custom_fields_to_payload, &block)
         
     | 
| 
       42 
42 
     | 
    
         
             
                ActionController::Base.send(:define_method, :logtasher_add_custom_fields_to_payload, &block)
         
     | 
| 
       43 
43 
     | 
    
         
             
              end
         
     | 
| 
       44 
44 
     | 
    
         | 
| 
       45 
     | 
    
         
            -
              def  
     | 
| 
      
 45 
     | 
    
         
            +
              def setup(app)
         
     | 
| 
       46 
46 
     | 
    
         
             
                app.config.action_dispatch.rack_cache[:verbose] = false if app.config.action_dispatch.rack_cache
         
     | 
| 
       47 
47 
     | 
    
         
             
                # Path instrumentation class to insert our hook
         
     | 
| 
       48 
48 
     | 
    
         
             
                require 'logstasher/rails_ext/action_controller/metal/instrumentation'
         
     | 
| 
       49 
49 
     | 
    
         
             
                require 'logstash-event'
         
     | 
| 
       50 
50 
     | 
    
         
             
                self.suppress_app_logs(app)
         
     | 
| 
       51 
51 
     | 
    
         
             
                LogStasher::RequestLogSubscriber.attach_to :action_controller
         
     | 
| 
       52 
     | 
    
         
            -
                self.logger = app.config.logstasher.logger ||  
     | 
| 
      
 52 
     | 
    
         
            +
                self.logger = app.config.logstasher.logger || new_logger("#{Rails.root}/log/logstash_#{Rails.env}.log")
         
     | 
| 
       53 
53 
     | 
    
         
             
                self.logger.level = app.config.logstasher.log_level || Logger::WARN
         
     | 
| 
       54 
54 
     | 
    
         
             
                self.enabled = true
         
     | 
| 
       55 
55 
     | 
    
         
             
              end
         
     | 
| 
       56 
56 
     | 
    
         | 
| 
       57 
     | 
    
         
            -
              def  
     | 
| 
      
 57 
     | 
    
         
            +
              def suppress_app_logs(app)
         
     | 
| 
       58 
58 
     | 
    
         
             
                if configured_to_suppress_app_logs?(app)
         
     | 
| 
       59 
59 
     | 
    
         
             
                  require 'logstasher/rails_ext/rack/logger'
         
     | 
| 
       60 
60 
     | 
    
         
             
                  LogStasher.remove_existing_log_subscriptions
         
     | 
| 
       61 
61 
     | 
    
         
             
                end
         
     | 
| 
       62 
62 
     | 
    
         
             
              end
         
     | 
| 
       63 
63 
     | 
    
         | 
| 
       64 
     | 
    
         
            -
              def  
     | 
| 
      
 64 
     | 
    
         
            +
              def configured_to_suppress_app_logs?(app)
         
     | 
| 
       65 
65 
     | 
    
         
             
                # This supports both spellings: "suppress_app_log" and "supress_app_log"
         
     | 
| 
       66 
66 
     | 
    
         
             
                !!(app.config.logstasher.suppress_app_log.nil? ? app.config.logstasher.supress_app_log : app.config.logstasher.suppress_app_log)
         
     | 
| 
       67 
67 
     | 
    
         
             
              end
         
     | 
| 
       68 
68 
     | 
    
         | 
| 
       69 
     | 
    
         
            -
              def  
     | 
| 
      
 69 
     | 
    
         
            +
              def custom_fields
         
     | 
| 
       70 
70 
     | 
    
         
             
                Thread.current[:logstasher_custom_fields] ||= []
         
     | 
| 
       71 
71 
     | 
    
         
             
              end
         
     | 
| 
       72 
72 
     | 
    
         | 
| 
       73 
     | 
    
         
            -
              def  
     | 
| 
      
 73 
     | 
    
         
            +
              def custom_fields=(val)
         
     | 
| 
       74 
74 
     | 
    
         
             
                Thread.current[:logstasher_custom_fields] = val
         
     | 
| 
       75 
75 
     | 
    
         
             
              end
         
     | 
| 
       76 
76 
     | 
    
         | 
| 
       77 
77 
     | 
    
         | 
| 
       78 
     | 
    
         
            -
              def  
     | 
| 
      
 78 
     | 
    
         
            +
              def log(severity, msg)
         
     | 
| 
       79 
79 
     | 
    
         
             
                if self.logger && self.logger.send("#{severity}?")
         
     | 
| 
       80 
80 
     | 
    
         
             
                  event = LogStash::Event.new('@fields' => {:message => msg, :level => severity},'@tags' => ['log'])
         
     | 
| 
       81 
81 
     | 
    
         
             
                  self.logger.send severity, event.to_json
         
     | 
| 
       82 
82 
     | 
    
         
             
                end
         
     | 
| 
       83 
83 
     | 
    
         
             
              end
         
     | 
| 
       84 
84 
     | 
    
         | 
| 
       85 
     | 
    
         
            -
               
     | 
| 
       86 
     | 
    
         
            -
                 
     | 
| 
       87 
     | 
    
         
            -
                   
     | 
| 
       88 
     | 
    
         
            -
                     
     | 
| 
       89 
     | 
    
         
            -
             
     | 
| 
       90 
     | 
    
         
            -
             
     | 
| 
       91 
     | 
    
         
            -
             
     | 
| 
       92 
     | 
    
         
            -
             
     | 
| 
      
 85 
     | 
    
         
            +
              %w( fatal error warn info debug unknown ).each do |severity|
         
     | 
| 
      
 86 
     | 
    
         
            +
                eval <<-EOM, nil, __FILE__, __LINE__ + 1
         
     | 
| 
      
 87 
     | 
    
         
            +
                  def #{severity}(msg)
         
     | 
| 
      
 88 
     | 
    
         
            +
                    self.log(:#{severity}, msg)
         
     | 
| 
      
 89 
     | 
    
         
            +
                  end
         
     | 
| 
      
 90 
     | 
    
         
            +
                EOM
         
     | 
| 
      
 91 
     | 
    
         
            +
              end
         
     | 
| 
      
 92 
     | 
    
         
            +
             
     | 
| 
      
 93 
     | 
    
         
            +
              private
         
     | 
| 
      
 94 
     | 
    
         
            +
             
     | 
| 
      
 95 
     | 
    
         
            +
              def new_logger(path)
         
     | 
| 
      
 96 
     | 
    
         
            +
                FileUtils.touch path # prevent autocreate messages in log
         
     | 
| 
      
 97 
     | 
    
         
            +
                Logger.new path
         
     | 
| 
       93 
98 
     | 
    
         
             
              end
         
     | 
| 
       94 
99 
     | 
    
         
             
            end
         
     | 
| 
       95 
100 
     | 
    
         | 
    
        data/lib/logstasher/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: logstasher
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0.4. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.4.5
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Shadab Ahmed
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date: 2014-01- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2014-01-13 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: logstash-event
         
     |