cuvva_log 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 +7 -0
- data/lib/cuvva_error.rb +42 -0
- data/lib/cuvva_log.rb +81 -0
- data/lib/cuvva_log_handler.rb +15 -0
- metadata +46 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 2a58ab1af6acd55df92f89541d078a5a000942a4
|
4
|
+
data.tar.gz: 1f90497153838aec06bebdd1c2b4fef96a9b753f
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 9c86fbad939b7d27c6c174507798ca88da6cade5ee3f3ad7f6ea290a3d313fada1fa67dfd5b279266434c6c82a3c7f7ae0a2fdb6891e2ad8cfe58e5114eabc9c
|
7
|
+
data.tar.gz: ee5c45bdc78eba6cd59caf94ca3873dd95b98c3ddfb606588bde00818734764eea391cd89211177cd8939b0f5ecd46e91a69b85efe61308e426a7fd6bc5bd730
|
data/lib/cuvva_error.rb
ADDED
@@ -0,0 +1,42 @@
|
|
1
|
+
require 'json'
|
2
|
+
|
3
|
+
class CuvvaError < StandardError
|
4
|
+
@@http_status_map = { }
|
5
|
+
|
6
|
+
attr_accessor :code
|
7
|
+
attr_accessor :reasons
|
8
|
+
attr_accessor :meta
|
9
|
+
attr_reader :stack
|
10
|
+
attr_reader :http_status
|
11
|
+
|
12
|
+
def initialize(*args)
|
13
|
+
code, reasons, meta = args
|
14
|
+
|
15
|
+
if meta === nil && !reasons.is_a?(Array)
|
16
|
+
meta = reasons
|
17
|
+
reasons = nil
|
18
|
+
end
|
19
|
+
|
20
|
+
@code = code
|
21
|
+
@reasons = reasons
|
22
|
+
@meta = meta
|
23
|
+
@stack = caller
|
24
|
+
@http_status = CuvvaError.http_status_map.has_key?(code) ?
|
25
|
+
CuvvaError.http_status_map[code] :
|
26
|
+
500
|
27
|
+
end
|
28
|
+
|
29
|
+
def to_json
|
30
|
+
JSON.generate(to_hash)
|
31
|
+
end
|
32
|
+
|
33
|
+
def self.http_status_map
|
34
|
+
@@http_status_map
|
35
|
+
end
|
36
|
+
|
37
|
+
private
|
38
|
+
|
39
|
+
def to_hash
|
40
|
+
{ :code => self.code, :reasons => self.reasons, :meta => self.meta }
|
41
|
+
end
|
42
|
+
end
|
data/lib/cuvva_log.rb
ADDED
@@ -0,0 +1,81 @@
|
|
1
|
+
require 'cuvva_error'
|
2
|
+
require 'cuvva_log_handler'
|
3
|
+
|
4
|
+
class Log
|
5
|
+
ERROR_LEVELS = {
|
6
|
+
:debug => 0,
|
7
|
+
:info => 1,
|
8
|
+
:warn => 2,
|
9
|
+
:error => 3,
|
10
|
+
:fatal => 4,
|
11
|
+
}
|
12
|
+
|
13
|
+
def self.get_level(level_name)
|
14
|
+
ERROR_LEVELS[level_name]
|
15
|
+
end
|
16
|
+
|
17
|
+
@@min_log_level = get_level(:info)
|
18
|
+
@@default_handler = LogHandler.new
|
19
|
+
@@handlers = Hash[ [:debug, :info, :warn, :error, :fatal].collect do |a|
|
20
|
+
[a, @@default_handler]
|
21
|
+
end ]
|
22
|
+
|
23
|
+
def self.debug(*args)
|
24
|
+
make_error(:debug, *args)
|
25
|
+
end
|
26
|
+
|
27
|
+
def self.info(*args)
|
28
|
+
make_error(:info, *args)
|
29
|
+
end
|
30
|
+
|
31
|
+
def self.warn(*args)
|
32
|
+
make_error(:warn, *args)
|
33
|
+
end
|
34
|
+
|
35
|
+
def self.error(*args)
|
36
|
+
make_error(:error, *args)
|
37
|
+
end
|
38
|
+
|
39
|
+
def self.fatal(*args)
|
40
|
+
make_error(:fatal, *args)
|
41
|
+
end
|
42
|
+
|
43
|
+
def self.min_log_level
|
44
|
+
@@min_log_level
|
45
|
+
end
|
46
|
+
|
47
|
+
def self.min_log_level=(log_level)
|
48
|
+
@@min_log_level = get_level(log_level)
|
49
|
+
end
|
50
|
+
|
51
|
+
def self.set_http_statuses(error_descriptor)
|
52
|
+
error_descriptor.each do |key, val|
|
53
|
+
CuvvaError.http_status_map[key] = val[:httpStatus]
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
def self.set_handler(*args)
|
58
|
+
if args.length == 1
|
59
|
+
handler = args[0]
|
60
|
+
|
61
|
+
for level in ERROR_LEVELS.keys
|
62
|
+
set_handler(level, handler)
|
63
|
+
end
|
64
|
+
else
|
65
|
+
level, handler = args
|
66
|
+
@@handlers[level] = handler
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
private
|
71
|
+
|
72
|
+
def self.handle_error(level, error)
|
73
|
+
@@handlers[level].handle(level, error)
|
74
|
+
end
|
75
|
+
|
76
|
+
def self.make_error(level, *args)
|
77
|
+
error = args[0].is_a?(CuvvaError) ? args[0] : CuvvaError.new(*args)
|
78
|
+
handle_error(level, error)
|
79
|
+
error
|
80
|
+
end
|
81
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require 'cuvva_log'
|
2
|
+
|
3
|
+
class LogHandler
|
4
|
+
def handle(level, error)
|
5
|
+
return if Log.get_level(level) < Log.min_log_level
|
6
|
+
|
7
|
+
error_string = "#{level}:#{error.to_json}"
|
8
|
+
|
9
|
+
if [ :warn, :error, :fatal ].include?(level)
|
10
|
+
STDERR.puts error_string
|
11
|
+
else
|
12
|
+
puts error_string
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
metadata
ADDED
@@ -0,0 +1,46 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: cuvva_log
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Jack Fransham
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-09-10 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
13
|
+
description: Super-simple logs for the Ruby-based Cuvva systems
|
14
|
+
email: jack.fransham@cuvva.co
|
15
|
+
executables: []
|
16
|
+
extensions: []
|
17
|
+
extra_rdoc_files: []
|
18
|
+
files:
|
19
|
+
- lib/cuvva_error.rb
|
20
|
+
- lib/cuvva_log.rb
|
21
|
+
- lib/cuvva_log_handler.rb
|
22
|
+
homepage: https://github.com/cuvva/cuvva-log-ruby
|
23
|
+
licenses:
|
24
|
+
- MIT
|
25
|
+
metadata: {}
|
26
|
+
post_install_message:
|
27
|
+
rdoc_options: []
|
28
|
+
require_paths:
|
29
|
+
- lib
|
30
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
31
|
+
requirements:
|
32
|
+
- - ">="
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: '0'
|
35
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
36
|
+
requirements:
|
37
|
+
- - ">="
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: '0'
|
40
|
+
requirements: []
|
41
|
+
rubyforge_project:
|
42
|
+
rubygems_version: 2.2.2
|
43
|
+
signing_key:
|
44
|
+
specification_version: 4
|
45
|
+
summary: Super-simple logs for the Ruby-based Cuvva systems
|
46
|
+
test_files: []
|