bamm_log 0.0.6 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- ZDJlNmU4NzcyYTljNTI5MjhiZDJlNDFhMGJmNjUzNWM4YjgwYjlhYw==
4
+ Yjk3ZDU2MWMxZjJhZTRhYjEwMGEyYmI2MTVmNmQ1ZWNmMzU3ZWNhNg==
5
5
  data.tar.gz: !binary |-
6
- MDU5MTFkM2NmNjY0ZTc4MjA5ZWYzOTA4NGMwMjg1ZmRiZjMyZDk4YQ==
6
+ ZGU1YWUxMjBkZTAzYzFkMzNjMTczZjgzMGE4ZjRlNDljNjFiYzBhYQ==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- NGE3Mzg5OTAyZWJiYzEzNTk4YjhkZTc2ZjIwOTM0YjRkMGU2YzFkYjdjN2Vh
10
- MDM3NjcxOGE3OTZlYjYzZTRkMjU4ODZmN2IyZTQ1Zjk2Y2E1Y2IyZDU0ZmQx
11
- OGE5NTUxZTFiM2YzM2RmNjA2YjM4MmZiNGEwNmQ3NzliZjA3MjQ=
9
+ NzAwZmZiNDk4OWY1YzNmODgyMmU4NWJjNDJlMDk2NjMzZGVhYjlmNzgzMjJj
10
+ ZGU3YzhjMjIzNWM4ZGRlNTQwOWUwYmJhMTBjMGNlMjM5MTZhNGYxY2EwY2Mw
11
+ OTc4Y2NhM2NiOTI2N2I2Mjg4MGEwN2Q1ZTU2ZTM1NDc4ZjY3OWE=
12
12
  data.tar.gz: !binary |-
13
- NGJhMDk0ODE0ZjdlYzJiYWRiZTg4Mzc1MDVjY2NkMGUwMzJkZmFjODU3MmM5
14
- YmIzNzQ2NDAyMWUwOWRmM2NhNWJiYzU4YzkyZTYxMWMyYTc0NTQyZWI2Zjgz
15
- Y2FlM2U4ZmY5YjFmNWUxYjZkMjE2YjhlNTA0OTcyM2E5OWZiMGE=
13
+ ZmFhOTQ0MzE2YzBlMmZiOGE2MDY2MTRlODJkNTZlM2UzZmI1NzkwY2FjNzRl
14
+ NDk1MzhiYWU1NWFlOTliZDZlYWE1Mjk3Y2UwYWIxODg0ZTU3ZGQ4YTZjY2Zm
15
+ OTA3ZmZlNjMzNjAwZGE0OTAwMWNmOGJjYjc1ZWZmYWY3MTEyZmQ=
data/README.md CHANGED
@@ -55,7 +55,7 @@ Include in your app
55
55
 
56
56
  class App < Sinatra::Base
57
57
 
58
- include BammLog::Logger
58
+ helpers BammLog::Logger
59
59
 
60
60
  end
61
61
 
@@ -64,7 +64,7 @@ And add manual logs
64
64
  BammLog.print "This is a log"
65
65
 
66
66
 
67
- In development environment, bamm_log logs to your terminal.<br />
67
+ In development environment, bamm_log logs to your terminal. (Right now is just a puts...meh, not really a logger)<br />
68
68
  In live environment, training or staging, bamm_log creates a file with the name "environment".log in /log and logs all the accesses and errors from your application.
69
69
 
70
70
  ## Contributing
data/lib/bamm_log.rb CHANGED
@@ -3,25 +3,18 @@ require_relative 'bamm_log/formatter'
3
3
  require_relative 'bamm_log/version'
4
4
 
5
5
  module BammLog
6
+
6
7
  module Logger
7
8
 
8
9
  def self.included(klass)
9
- klass.configure do
10
- klass.enable :logging
11
- klass.use BammLog::ExceptionMiddleware
12
- end
13
-
10
+ klass.use BammLog::ExceptionMiddleware
14
11
  klass.include BammLog::Formatter
15
-
16
- @instance ||= if klass.environment != :development
12
+
13
+ @instance ||= if ENV['RACK_ENV'] != 'development'
17
14
  EnvLogger.new(klass)
18
15
  else
19
16
  DevLogger.new
20
17
  end
21
-
22
- klass.configure do
23
- klass.use Rack::CommonLogger, BammLog::Logger.instance
24
- end
25
18
  end
26
19
 
27
20
  def self.instance
@@ -35,14 +28,14 @@ module BammLog
35
28
  attr_accessor :logger
36
29
 
37
30
  def initialize(app)
38
- self.logger = ::Logger.new(EnvLogger.log_file(app)).tap do |logger|
31
+ @logger = ::Logger.new(EnvLogger.log_file(app)).tap do |logger|
39
32
  ::Logger.class_eval { alias :write :'<<' }
40
33
  logger.level = ::Logger::INFO
41
34
  end
42
35
  end
43
36
 
44
37
  def self.log_file(app)
45
- @log_file ||= File.new("#{app.root}/log/#{app.environment}.log", 'a+').tap do |log_file|
38
+ @log_file ||= File.new("#{ENV['ROOT_PATH']}/log/#{ENV['RACK_ENV']}.log", 'a+').tap do |log_file|
46
39
  log_file.sync = true
47
40
  end
48
41
  end
@@ -58,15 +51,9 @@ module BammLog
58
51
  def info(text)
59
52
  puts BammLog::Formatter.call_formatted(Time.now, text)
60
53
  end
61
-
62
- end
63
54
 
64
- end
55
+ end
65
56
 
66
- def print(message)
67
- BammLog::Logger.instance.info message
68
57
  end
69
-
70
- extend self
71
58
 
72
- end
59
+ end
@@ -1,56 +1,86 @@
1
1
  module BammLog
2
+
2
3
  class ExceptionMiddleware
3
4
 
4
- attr_reader :env
5
+ attr_reader :env, :request, :logger
5
6
 
6
7
  def initialize(app, options={})
7
- @app = app
8
+ @app = app
8
9
  end
9
10
 
10
11
  def call(env)
11
- @env = env
12
-
13
12
  begin
13
+ @request_id = SecureRandom.base64(24).tr('+/=lIO0', 'pqrsxyz')
14
+ @start_time = Time.now
15
+ @env = env
16
+
17
+ build_request
14
18
  log_start
15
19
  log_params
16
- @app.call(env)
20
+
21
+ begin
22
+ call = @app.call(env)
23
+ @end_time = Time.now
24
+ log_end
25
+ call
26
+ rescue Exception => e
27
+ @end_time = Time.now
28
+ log_exception(e)
29
+ log_end
30
+ @app.call(env)
31
+ end
17
32
  rescue Exception => e
18
- log_exception
19
- @app.call(env)
33
+ log_exception(e)
20
34
  end
21
35
  end
22
36
 
23
37
  private
24
38
 
39
+ def build_request
40
+ @request = Rack::Request.new(env)
41
+ end
42
+
25
43
  def request_params
26
- if request_body_params?
27
- env['rack.request.form_hash']
28
- else
29
- Rack::Utils.parse_nested_query(env['QUERY_STRING'])
30
- end
44
+ request.params.except(:route_info)
31
45
  end
32
46
 
33
47
  def log_start
34
- BammLog.print "Started #{env['REQUEST_METHOD']} \"#{env['REQUEST_URI']}\""
48
+ print "Started #{env['REQUEST_METHOD']} \"#{env['REQUEST_URI']}\""
35
49
  end
36
50
 
37
51
  def log_params
38
- BammLog.print "Parameters: #{request_params.inspect}"
52
+ print "Parameters: #{request_params.to_hash.inspect}"
39
53
  end
40
54
 
41
- def log_exception
42
- e = env['sinatra.error']
55
+ def log_exception(e)
56
+ print "Bamm! #{e.class}: #{e.message}"
43
57
 
44
- BammLog.print "Bamm! #{e.class}: #{e.message}"
45
-
46
58
  e.backtrace.each do |line|
47
- BammLog.print "#{line}"
59
+ print "#{line}"
48
60
  end
49
61
  end
50
62
 
63
+ def log_end
64
+ print "Ended #{env['REQUEST_METHOD']} \"#{env['REQUEST_URI']}\" in #{request_time_ms} ms"
65
+ end
66
+
67
+ def request_time_ms
68
+ (@end_time-@start_time).round(4)
69
+ end
70
+
71
+ def print(message)
72
+
73
+ if ENV['RACK_ENV'] != 'development' && ENV['RACK_ENV'] != 'test'
74
+ message = "[#{@request_id}] #{message}"
75
+ end
76
+
77
+ BammLog::Logger.instance.info message
78
+ end
79
+
51
80
  def request_body_params?
52
81
  ['POST', 'PUT', 'PATCH'].include? env['REQUEST_METHOD']
53
82
  end
54
83
 
55
84
  end
56
- end
85
+
86
+ end
@@ -16,8 +16,8 @@ module BammLog
16
16
  end
17
17
  end
18
18
  end
19
-
19
+
20
20
  extend self
21
21
 
22
22
  end
23
- end
23
+ end
@@ -1,3 +1,3 @@
1
1
  module BammLog
2
- VERSION = "0.0.6"
2
+ VERSION = "0.1.0"
3
3
  end
Binary file
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bamm_log
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joaquim Adráz
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-08-28 00:00:00.000000000 Z
11
+ date: 2014-12-22 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description:
14
14
  email:
@@ -30,6 +30,7 @@ files:
30
30
  - pkg/bamm_log-0.0.3.gem
31
31
  - pkg/bamm_log-0.0.4.gem
32
32
  - pkg/bamm_log-0.0.5.gem
33
+ - pkg/bamm_log-0.0.6.gem
33
34
  homepage: https://github.com/joaquimadraz/bamm_log
34
35
  licenses:
35
36
  - MIT