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: []
         |