humorous_log_formatter 0.0.1 → 0.0.2
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 +4 -4
- data/README.md +10 -3
- data/lib/humorous_log_formatter.rb +30 -10
- data/lib/humorous_log_formatter/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a61d81a7088603de9ecc0371591a2e1420b29b03
|
4
|
+
data.tar.gz: 4d137e11ddc5aabe10e4ac3ef28f47715aa75dbb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 953f58cb2aeee4e482dcfe17bae9ca7798277d4e21e7c90011f2953a58b64d48b0ede82181cbaab085e1f26690b2be534da8cae21b47bb9d76c0255b2b159580
|
7
|
+
data.tar.gz: e5bce548d857cd8b765c06645d6b979cf153af9131dc4450ecd5da6b07ad7e68902eb2b120fef32b3d757c84d735b1ac783c02e892cb383e98426224d419fd0c
|
data/README.md
CHANGED
@@ -1,13 +1,17 @@
|
|
1
1
|
# HumorousLogFormatter
|
2
2
|
|
3
|
-
You want Humorous Log Levels and Color
|
3
|
+
You want Humorous Log Levels and Color? Can chickens turtle all the way down? Of course!
|
4
|
+
|
5
|
+
Works with Rails 3 & 4!
|
4
6
|
|
5
7
|
## Installation
|
6
8
|
|
7
|
-
Add this line to your application's Gemfile:
|
9
|
+
Add this line to your application's Gemfile in the `:development` group, or wherever else you want awesome logs:
|
8
10
|
|
9
11
|
```ruby
|
10
|
-
|
12
|
+
group :development do
|
13
|
+
gem 'humorous_log_formatter'
|
14
|
+
end
|
11
15
|
```
|
12
16
|
|
13
17
|
And then execute:
|
@@ -20,6 +24,9 @@ Or install it yourself as:
|
|
20
24
|
|
21
25
|
## Usage
|
22
26
|
|
27
|
+
* There is ZERO configuration. It makes some assumptions.
|
28
|
+
* Putting the gem in your Gemfile and restart your app.
|
29
|
+
* Now you have beautiful logs.
|
23
30
|
* Use the source.
|
24
31
|
* There are a bunch of CONSTANTS defined in the code, and everything this gem does is driven by them.
|
25
32
|
* Override them for magic.
|
@@ -10,10 +10,21 @@ require "humorous_log_formatter/version"
|
|
10
10
|
|
11
11
|
module HumorousLogFormatter
|
12
12
|
class LogFormatter
|
13
|
-
|
14
|
-
#
|
13
|
+
|
14
|
+
# Make it work with Rails 4
|
15
|
+
if defined?(Rails)
|
16
|
+
if ::Rails::VERSION::MAJOR >= 4
|
17
|
+
include ActiveSupport::TaggedLogging::Formatter
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
15
21
|
SEVERITY_TO_TAG_MAP = {'DEBUG' => 'meh', 'INFO' => 'fyi', 'WARN' => 'hmm', 'ERROR' => 'wtf', 'FATAL' => 'omg', 'UNKNOWN' => '???'}
|
16
22
|
SEVERITY_TO_COLOR_MAP = {'DEBUG' => '0;37', 'INFO' => '32', 'WARN' => '33', 'ERROR' => '31', 'FATAL' => '31', 'UNKNOWN' => '37'}
|
23
|
+
TIME_FORMAT = "%Y-%m-%d %H:%M:%S."
|
24
|
+
SKIP_TIME = !Rails.env.development? # because heroku already prints the time, override if you use in prod and aren't on Heroku
|
25
|
+
SUPER_TIME_PRECISION = 3
|
26
|
+
SUPER_TIME_PRECISION_STOP_INDEX = SUPER_TIME_PRECISION - 1
|
27
|
+
USE_SUPER_TIME = SUPER_TIME_PRECISION > 0
|
17
28
|
USE_HUMOROUS_SEVERITIES = begin
|
18
29
|
if ENV['LOG_HUMOR']
|
19
30
|
ENV['LOG_HUMOR'] != 'false' # Default to true
|
@@ -38,20 +49,24 @@ module HumorousLogFormatter
|
|
38
49
|
FORMATTED_MESSAGE = if USE_COLOR
|
39
50
|
lambda { |severity, formatted_time, msg|
|
40
51
|
color = SEVERITY_TO_COLOR_MAP[severity]
|
41
|
-
|
52
|
+
res = ''
|
53
|
+
res << "[\033[#{color}m#{formatted_time}\033[0m] " if formatted_time
|
54
|
+
res << "[\033[#{color}m#{FORMATTED_SEVERITY.call(severity)}\033[0m] #{msg.strip}\n"
|
42
55
|
}
|
43
56
|
else
|
44
57
|
lambda { |severity, formatted_time, msg|
|
45
|
-
|
58
|
+
res = ''
|
59
|
+
res << "[#{formatted_time}]" if formatted_time
|
60
|
+
res << "[#{FORMATTED_SEVERITY.call(severity)}] #{msg.strip}\n"
|
46
61
|
}
|
47
62
|
end
|
48
63
|
|
49
64
|
def exception_values(e)
|
50
65
|
trace = e.backtrace.select { |x| !line.starts_with?(THIS_FILE_PATH) }
|
51
66
|
trace = trace.map { |l| colorize_exception(l) } if USE_COLOR
|
52
|
-
first = "\n
|
53
|
-
rest = "\t
|
54
|
-
|
67
|
+
first = "\n#{trace.first}: #{e.message} (#{e.class})"
|
68
|
+
rest = "\t#{trace[1..-1].join("\n\t")}"
|
69
|
+
"#{first}\n#{rest}"
|
55
70
|
end
|
56
71
|
|
57
72
|
def colorize_exception(line)
|
@@ -59,13 +74,18 @@ module HumorousLogFormatter
|
|
59
74
|
end
|
60
75
|
|
61
76
|
def call(severity, time, progname, msg)
|
62
|
-
|
77
|
+
if SKIP_TIME
|
78
|
+
formatted_time = nil
|
79
|
+
else
|
80
|
+
formatted_time = time.strftime(TIME_FORMAT)
|
81
|
+
formatted_time << time.usec.to_s[0..(SUPER_TIME_PRECISION_STOP_INDEX)].rjust(SUPER_TIME_PRECISION) if USE_SUPER_TIME
|
82
|
+
end
|
63
83
|
text = if msg.is_a? String
|
64
84
|
msg
|
65
85
|
elsif msg.is_a? Exception
|
66
|
-
"
|
86
|
+
" --> Exception:#{exception_values(msg)}"
|
67
87
|
else
|
68
|
-
"!!!!! UNKNOWN TYPE: #{msg.class}
|
88
|
+
"!!!!! UNKNOWN TYPE: #{msg.class} #{msg.to_s}"
|
69
89
|
end
|
70
90
|
FORMATTED_MESSAGE.call(severity, formatted_time, text)
|
71
91
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: humorous_log_formatter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Peter Boling
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-10-
|
11
|
+
date: 2014-10-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -103,7 +103,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
103
103
|
version: '0'
|
104
104
|
requirements: []
|
105
105
|
rubyforge_project:
|
106
|
-
rubygems_version: 2.
|
106
|
+
rubygems_version: 2.4.2
|
107
107
|
signing_key:
|
108
108
|
specification_version: 4
|
109
109
|
summary: Humorous Log Levels and Color For Rails.
|