bamm_log 0.0.6 → 0.1.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.
- checksums.yaml +8 -8
- data/README.md +2 -2
- data/lib/bamm_log.rb +8 -21
- data/lib/bamm_log/exception_middleware.rb +50 -20
- data/lib/bamm_log/formatter.rb +2 -2
- data/lib/bamm_log/version.rb +1 -1
- data/pkg/bamm_log-0.0.6.gem +0 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
Yjk3ZDU2MWMxZjJhZTRhYjEwMGEyYmI2MTVmNmQ1ZWNmMzU3ZWNhNg==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
ZGU1YWUxMjBkZTAzYzFkMzNjMTczZjgzMGE4ZjRlNDljNjFiYzBhYQ==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
NzAwZmZiNDk4OWY1YzNmODgyMmU4NWJjNDJlMDk2NjMzZGVhYjlmNzgzMjJj
|
10
|
+
ZGU3YzhjMjIzNWM4ZGRlNTQwOWUwYmJhMTBjMGNlMjM5MTZhNGYxY2EwY2Mw
|
11
|
+
OTc4Y2NhM2NiOTI2N2I2Mjg4MGEwN2Q1ZTU2ZTM1NDc4ZjY3OWE=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
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
|
-
|
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
|
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.
|
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
|
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
|
-
|
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("#{
|
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
|
-
|
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
|
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
|
-
|
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
|
-
|
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
|
-
|
48
|
+
print "Started #{env['REQUEST_METHOD']} \"#{env['REQUEST_URI']}\""
|
35
49
|
end
|
36
50
|
|
37
51
|
def log_params
|
38
|
-
|
52
|
+
print "Parameters: #{request_params.to_hash.inspect}"
|
39
53
|
end
|
40
54
|
|
41
|
-
def log_exception
|
42
|
-
|
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
|
-
|
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
|
-
|
85
|
+
|
86
|
+
end
|
data/lib/bamm_log/formatter.rb
CHANGED
data/lib/bamm_log/version.rb
CHANGED
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
|
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-
|
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
|