gray_logger 0.9.5 → 0.10.0

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/README.md CHANGED
@@ -34,15 +34,45 @@ GrayLogger is a small logging tool that allows you to simply log anything you wa
34
34
  ActionController::Base.send(:include, ::GrayLogger::HelperMethods)
35
35
  ````
36
36
 
37
+ 4. To install the gray_logger proxy:
38
+ ````ruby
39
+ config.logger = Rack::GrayLogger::Proxy.new(Syslogger.new("path..."))
40
+ ````
41
+
37
42
  ## Usage
38
43
 
39
44
  In Rails you can use the "gray_logger" method to add new fields to be logged to Graylog2.
40
45
 
41
- e.g.
42
- ```ruby
43
- gray_logger.login_name = "darkswoop"
44
- ```
46
+ #### Buckets
47
+ You can use buckets to collect fields and send them in one request to GrayLog2:
48
+
49
+ ````ruby
50
+ gray_logger.bucket(:financial_data).account_nr = 123
51
+ gray_logger.bucket(:financial_data).iban = 98767
52
+ gray_logger.flush_bucket(:financial_data) # sends the collected fields as one log message to GrayLog2 and clears the bucket
53
+ ````
54
+ When the request is finished all remaining buckets are send to GrayLog2 so you don't have to care if you only want to collect your data.
55
+
56
+ #### After Request Log
57
+
58
+ There is a special bucket that is used for logging possible exceptions and request information.
59
+ When you are using the Rack::GrayLogger::Proxy the proxy will use this bucket to collect the loglines
60
+ from the proxied logger. Feel free to add your own fields using:
61
+
62
+ ````ruby
63
+ gray_logger.after_request_log.user_login = current_user.login
64
+ ````
65
+
66
+ #### Automatic Logging
45
67
 
46
- After the request is finished and shortly before the response is send to the user GrayLogger will send your Log-Message to the Graylog2 server.
68
+ Automatic Logging is enabled by default. That means after the request is done GrayLogger will automatically
69
+ log to GrayLog2. If you don't want this automatic logging disable it by setting automatic_logging to false.
47
70
 
71
+ ````yaml
72
+ development:
73
+ host: ...
74
+ port: ...
75
+ facility: ...
76
+ automatic_logging: false
77
+ ````
48
78
 
@@ -2,9 +2,12 @@ module GrayLogger
2
2
 
3
3
  class Logger < GELF::Logger
4
4
  include ::GrayLogger::Support
5
- attr_reader :buckets
5
+ attr_reader :buckets, :automatic_logging
6
6
 
7
7
  def initialize(configuration={})
8
+ automatic_logging = configuration.delete(:automatic_logging)
9
+ @automatic_logging = automatic_logging.nil? ? true : automatic_logging
10
+
8
11
  defaults = {
9
12
  :size => "WAN",
10
13
  :facility => "facility-not-defined"
@@ -18,6 +21,15 @@ module GrayLogger
18
21
  @buckets = {}
19
22
  end
20
23
 
24
+ def automatic_logging?
25
+ !!@automatic_logging
26
+ end
27
+
28
+ def reset!
29
+ @buckets = {}
30
+ self
31
+ end
32
+
21
33
  # logger.after_request_log << {:my_field => 'field content'}
22
34
  # logger.after_request_log.my_field = 'field content'
23
35
  def after_request_log
@@ -19,14 +19,18 @@ module Rack
19
19
  begin
20
20
  status, headers, body = @app.call(env)
21
21
  rescue => e
22
- gray_logger.log_exception(e)
22
+ gray_logger.log_exception(e) if gray_logger.automatic_logging?
23
23
  raise
24
24
  ensure
25
25
  req = Rack::Request.new(env)
26
- gray_logger.log_exception(env['rack.exception'])
27
- gray_logger.after_request_log.status_code = status.to_i
28
- gray_logger.after_request_log.short_message = "Request: #{req.path} (#{status.to_i})" if gray_logger.after_request_log[:short_message].nil?
29
- gray_logger.flush
26
+ if gray_logger.automatic_logging?
27
+ gray_logger.log_exception(env['rack.exception'])
28
+ gray_logger.after_request_log.status_code = status.to_i
29
+ gray_logger.after_request_log.short_message = "Request: #{req.path} (#{status.to_i})" if gray_logger.after_request_log[:short_message].nil?
30
+ gray_logger.flush
31
+ else
32
+ gray_logger.reset!
33
+ end
30
34
  [status, headers, body]
31
35
  end
32
36
 
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gray_logger
3
3
  version: !ruby/object:Gem::Version
4
- hash: 49
4
+ hash: 55
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
- - 9
9
- - 5
10
- version: 0.9.5
8
+ - 10
9
+ - 0
10
+ version: 0.10.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Benjamin Behr