xasin-logger 0.1
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/README.md +9 -0
- data/lib/xasin_logger.rb +107 -0
- metadata +59 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: bdaed3a396f957c05cb12141777fb9f7716e64067e648fc700bdd6711528efdf
|
4
|
+
data.tar.gz: f190ed29f3d52b1a3609cf7df56244fc6f21c6583c29b90d4da3ec683f0367d4
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 6db51f4611e4ceac25c1afd80eed7e3653c5bc9b59b0bb9e0bce7b4159277359153b1fef6021737a94fdd81edcd279a3036701d002718e006c03f16c0fabf40d
|
7
|
+
data.tar.gz: 42565ede04d4933f693a7c4cf13a4ab787a45b2ac318f680c63ee0ef21b46e6ba559ef090a3a343db0a9757a7227bdeb3cb33db4fa01b612bc42ef7cd56cf0b7
|
data/README.md
ADDED
@@ -0,0 +1,9 @@
|
|
1
|
+
|
2
|
+
# XasLogger - a colorized, multi-output mixing
|
3
|
+
|
4
|
+
Really, this is just a fancy wrapper for the standard Ruby logger. I didn't like
|
5
|
+
how it looks, I prefer the colorized output of the ESP-IDF's logger - can you blame me?
|
6
|
+
|
7
|
+
Either way, this simple and smol gem provides a few helper functions and mix-ins
|
8
|
+
to allow for multi-output logging, per-module log level setting, colorized output
|
9
|
+
and a mix-in for extra easy logging of class based code :>
|
data/lib/xasin_logger.rb
ADDED
@@ -0,0 +1,107 @@
|
|
1
|
+
|
2
|
+
require 'logger'
|
3
|
+
|
4
|
+
module XasLogger
|
5
|
+
def XasLogger.init_formatting_logger(log_dest)
|
6
|
+
logger = Logger.new(log_dest);
|
7
|
+
|
8
|
+
logger.formatter = proc do |severity, datetime, progname, msg|
|
9
|
+
outStr = "[#{datetime.strftime("%b-%d %H:%M:%S.%L")}] #{msg}\n";
|
10
|
+
|
11
|
+
case(severity)
|
12
|
+
when 'DEBUG'
|
13
|
+
outStr = "D #{outStr}";
|
14
|
+
when 'WARN'
|
15
|
+
outStr = "W #{outStr}".yellow
|
16
|
+
when 'INFO'
|
17
|
+
outStr = "I #{outStr}".green
|
18
|
+
when 'ERROR'
|
19
|
+
outStr = "E #{outStr}".red
|
20
|
+
when 'FATAL'
|
21
|
+
outStr = "F #{outStr}".black.on_red
|
22
|
+
else
|
23
|
+
outStr = "? #{outStr}".purple
|
24
|
+
end
|
25
|
+
|
26
|
+
outStr;
|
27
|
+
end
|
28
|
+
|
29
|
+
return logger;
|
30
|
+
end
|
31
|
+
|
32
|
+
def XasLogger.init_logger_list(list)
|
33
|
+
lgrList = [list].flatten;
|
34
|
+
|
35
|
+
outList = Array.new();
|
36
|
+
lgrList.each do |logger|
|
37
|
+
if(logger.is_a? Logger)
|
38
|
+
outList << logger;
|
39
|
+
else
|
40
|
+
outList << init_formatting_logger(logger)
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
def XasLogger.loggers()
|
46
|
+
@loggers ||= [init_formatting_logger(STDOUT)];
|
47
|
+
|
48
|
+
return @loggers
|
49
|
+
end
|
50
|
+
|
51
|
+
def XasLogger.loggers=(loggerList)
|
52
|
+
@loggers = init_logger_list(loggerList);
|
53
|
+
end
|
54
|
+
|
55
|
+
module Mix
|
56
|
+
def init_x_log(tag, logger)
|
57
|
+
@tag = tag;
|
58
|
+
@log_level = ::Logger::INFO;
|
59
|
+
|
60
|
+
if(logger.nil?)
|
61
|
+
@log_dest = XasLogger.loggers();
|
62
|
+
else
|
63
|
+
@log_dest = XasLogger.init_logger_list(logger);
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
def x_log(level, text)
|
68
|
+
return if(@log_level > level)
|
69
|
+
|
70
|
+
@log_dest.each do |logger|
|
71
|
+
logger.add(level, "#{@tag}: #{text}");
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
def x_logd(text)
|
76
|
+
x_log(Logger::DEBUG, text);
|
77
|
+
end
|
78
|
+
def x_logi(text)
|
79
|
+
x_log(Logger::INFO, text);
|
80
|
+
end
|
81
|
+
def x_logw(text)
|
82
|
+
x_log(Logger::WARN, text);
|
83
|
+
end
|
84
|
+
def x_loge(text)
|
85
|
+
x_log(Logger::ERROR, text);
|
86
|
+
end
|
87
|
+
def x_logf(text)
|
88
|
+
x_log(Logger::FATAL, text);
|
89
|
+
end
|
90
|
+
|
91
|
+
def log_dest=(newDests)
|
92
|
+
@log_dest = self.class.init_logger_list(newDests);
|
93
|
+
end
|
94
|
+
|
95
|
+
def log_level=(nLevel)
|
96
|
+
@log_level = nLevel;
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
100
|
+
class Standalone
|
101
|
+
include XasLogger::Mix
|
102
|
+
|
103
|
+
def initialize(tag, logger = nil)
|
104
|
+
init_x_log(tag, logger);
|
105
|
+
end
|
106
|
+
end
|
107
|
+
end
|
metadata
ADDED
@@ -0,0 +1,59 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: xasin-logger
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: '0.1'
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Xasin
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2019-10-29 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: colorize
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0.8'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0.8'
|
27
|
+
description: ESP-IDF like, colorized, mixin-capable logging. It's just prettier this
|
28
|
+
way, really.
|
29
|
+
email:
|
30
|
+
executables: []
|
31
|
+
extensions: []
|
32
|
+
extra_rdoc_files: []
|
33
|
+
files:
|
34
|
+
- README.md
|
35
|
+
- lib/xasin_logger.rb
|
36
|
+
homepage: https://github.com/XasWorks/XasCode/tree/master/Ruby/XasLog
|
37
|
+
licenses:
|
38
|
+
- GPL-3.0
|
39
|
+
metadata: {}
|
40
|
+
post_install_message:
|
41
|
+
rdoc_options: []
|
42
|
+
require_paths:
|
43
|
+
- lib
|
44
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - ">="
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: '0'
|
49
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - ">="
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '0'
|
54
|
+
requirements: []
|
55
|
+
rubygems_version: 3.0.6
|
56
|
+
signing_key:
|
57
|
+
specification_version: 4
|
58
|
+
summary: Mixin-Based logging system
|
59
|
+
test_files: []
|