kona-logger 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore ADDED
@@ -0,0 +1,18 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ coverage
6
+ InstalledFiles
7
+ lib/bundler/man
8
+ pkg
9
+ rdoc
10
+ spec/reports
11
+ test/tmp
12
+ test/version_tmp
13
+ tmp
14
+
15
+ # YARD artifacts
16
+ .yardoc
17
+ _yardoc
18
+ doc/
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source "http://rubygems.org"
2
+
3
+ gem 'colorize'
data/Gemfile.lock ADDED
@@ -0,0 +1,10 @@
1
+ GEM
2
+ remote: http://rubygems.org/
3
+ specs:
4
+ colorize (0.5.8)
5
+
6
+ PLATFORMS
7
+ ruby
8
+
9
+ DEPENDENCIES
10
+ colorize
data/README.md ADDED
@@ -0,0 +1,16 @@
1
+ kona-logger gem
2
+
3
+ Description
4
+ ------------
5
+ This gem implements a simple logger.
6
+ params:
7
+ logfile - log file or STDOUT. default: STDOUT
8
+ loglevel - debug, info, error, fatal, warn. default: info
9
+
10
+ logger can be disabled thru accessor called 'disabled'
11
+
12
+ Example
13
+ ----------
14
+ `logger = KonaLogger::Logger.new(STDOUT, 'debug')`
15
+
16
+ `logger.debug(msg)`
data/Rakefile ADDED
@@ -0,0 +1,2 @@
1
+ require 'bundler'
2
+ Bundler::GemHelper.install_tasks
@@ -0,0 +1,22 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "kona-logger/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "kona-logger"
7
+ s.version = KonaLogger::VERSION
8
+ s.platform = Gem::Platform::RUBY
9
+ s.authors = ["Hillel Kahana"]
10
+ s.email = ["hillel@kontera.com"]
11
+ s.homepage = ""
12
+ s.summary = %q{kona-logger files}
13
+ s.description = %q{A simple logger}
14
+
15
+ s.rubyforge_project = "kona-logger"
16
+
17
+ #s.files = `git ls-files`.split("\n")
18
+ s.files = `git ls-files`.split("\n")
19
+ s.require_paths = ["lib"]
20
+ s.add_dependency('colorize')
21
+ end
22
+
@@ -0,0 +1 @@
1
+ require_relative 'kona-logger/logger'
@@ -0,0 +1,71 @@
1
+ require 'colorize'
2
+ require 'logger'
3
+
4
+ module KonaLogger
5
+
6
+ class Logger
7
+
8
+ attr_accessor :logger, :disabled
9
+
10
+ @@severties = Hash.new{::Logger::INFO}.merge!({'debug' => ::Logger::DEBUG, "info" => ::Logger::INFO, "warn" => ::Logger::WARN, "error" => ::Logger::ERROR, "fatal" => ::Logger::FATAL})
11
+
12
+ def initialize(logfile, severity)
13
+ self.logger = ::Logger.new(logfile.nil? ? STDOUT : logfile)
14
+ self.logger.level = severity.nil? ? @@severties['info'] : @@severties[severity]
15
+ self.logger.formatter = proc { |s, dt, pr, msg|
16
+ def get_callee(msg, caller)
17
+ msg.is_a?(String) ? get_caller_file(caller) : msg[:callee]
18
+ end
19
+
20
+ def get_msg(msg)
21
+ msg.is_a?(String) ? msg : msg[:msg]
22
+ end
23
+
24
+ "[#{dt.strftime("%Y-%m-%dT%T.%6N").magenta}][#{color_severity(s)}][#{get_callee(msg, caller)}] #{get_msg(msg)}"
25
+ }
26
+ end
27
+
28
+ def level= l
29
+ logger.level=l if logger.respond_to? :level
30
+ end
31
+
32
+ def progress message
33
+ logger.info(message) if logger.respond_to? :info
34
+ end
35
+
36
+ def fatal msg
37
+ logger.fatal([msg,"\n"].join) if logger.respond_to? :fatal
38
+ exit 1
39
+ end
40
+
41
+ def get_caller_file(caller)
42
+ (caller[0] =~ /logger\.rb/ ? caller[1] : caller[0]).to_s.gsub(/:in.*/,'').split('/')[-1]
43
+ end
44
+
45
+ def method_missing(m,*args,&block)
46
+ msg = {:msg => "#{args.first.to_s}\n", :callee => get_caller_file(caller) }
47
+ logger.send(m, msg) if logger.respond_to?(m) && !disabled
48
+ end
49
+
50
+ def self.method_missing(m,*args,&block)
51
+ instance.send(m,*args,&block)
52
+ end
53
+
54
+ private
55
+
56
+ def color_severity(s)
57
+ case s
58
+ when 'INFO' then s.blue
59
+ when 'DEBUG' then s.green
60
+ when 'FATAL' then s.red
61
+ when 'ERROR'; s.light_red
62
+ when 'WARN'; s.yellow
63
+ else s.blue
64
+ end
65
+ end
66
+
67
+ end
68
+
69
+ end
70
+
71
+
@@ -0,0 +1,4 @@
1
+ module KonaLogger
2
+ VERSION = "0.0.5"
3
+ end
4
+
metadata ADDED
@@ -0,0 +1,70 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: kona-logger
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.5
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Hillel Kahana
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2014-01-12 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: colorize
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ description: A simple logger
31
+ email:
32
+ - hillel@kontera.com
33
+ executables: []
34
+ extensions: []
35
+ extra_rdoc_files: []
36
+ files:
37
+ - .gitignore
38
+ - Gemfile
39
+ - Gemfile.lock
40
+ - README.md
41
+ - Rakefile
42
+ - kona-logger.gemspec
43
+ - lib/kona-logger.rb
44
+ - lib/kona-logger/logger.rb
45
+ - lib/kona-logger/version.rb
46
+ homepage: ''
47
+ licenses: []
48
+ post_install_message:
49
+ rdoc_options: []
50
+ require_paths:
51
+ - lib
52
+ required_ruby_version: !ruby/object:Gem::Requirement
53
+ none: false
54
+ requirements:
55
+ - - ! '>='
56
+ - !ruby/object:Gem::Version
57
+ version: '0'
58
+ required_rubygems_version: !ruby/object:Gem::Requirement
59
+ none: false
60
+ requirements:
61
+ - - ! '>='
62
+ - !ruby/object:Gem::Version
63
+ version: '0'
64
+ requirements: []
65
+ rubyforge_project: kona-logger
66
+ rubygems_version: 1.8.23
67
+ signing_key:
68
+ specification_version: 3
69
+ summary: kona-logger files
70
+ test_files: []