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.
Files changed (4) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +9 -0
  3. data/lib/xasin_logger.rb +107 -0
  4. 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 :>
@@ -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: []