From 55e474209c9d8ea197f4ed9162b5fad028d5166d Mon Sep 17 00:00:00 2001 From: Kristian Meier Date: Sun, 8 Feb 2009 02:19:25 +0530 Subject: [PATCH] first commit --- History.txt | 6 ++ Manifest.txt | 16 +++ README.txt | 99 ++++++++++++++++++ README.txt~ | 99 ++++++++++++++++++ Rakefile | 19 ++++ lib/log4r_adapter.rb | 12 +++ lib/logging_adapter.rb | 16 +++ lib/ruby_logger_adapter.rb | 10 ++ lib/slf4r.rb | 8 ++ lib/slf4r/abstract_logger_facade.rb | 70 +++++++++++++ lib/slf4r/logger.rb | 9 ++ lib/slf4r/logging_logger.rb | 63 +++++++++++ lib/slf4r/noop_logger.rb | 40 +++++++ lib/slf4r/ruby_logger.rb | 80 ++++++++++++++ lib/slf4r/version.rb | 3 + lib/slf4r/wrapped_logger.rb | 60 +++++++++++ pkg/slf4r-0.1.0.gem | Bin 0 -> 7680 bytes pkg/slf4r-0.1.0.tgz | Bin 0 -> 3992 bytes pkg/slf4r-0.1.0/History.txt | 6 ++ pkg/slf4r-0.1.0/Manifest.txt | 16 +++ pkg/slf4r-0.1.0/README.txt | 99 ++++++++++++++++++ pkg/slf4r-0.1.0/Rakefile | 19 ++++ pkg/slf4r-0.1.0/lib/log4r_adapter.rb | 12 +++ pkg/slf4r-0.1.0/lib/logging_adapter.rb | 16 +++ pkg/slf4r-0.1.0/lib/ruby_logger_adapter.rb | 10 ++ pkg/slf4r-0.1.0/lib/slf4r.rb | 8 ++ .../lib/slf4r/abstract_logger_facade.rb | 70 +++++++++++++ pkg/slf4r-0.1.0/lib/slf4r/logger.rb | 9 ++ pkg/slf4r-0.1.0/lib/slf4r/logging_logger.rb | 63 +++++++++++ pkg/slf4r-0.1.0/lib/slf4r/noop_logger.rb | 40 +++++++ pkg/slf4r-0.1.0/lib/slf4r/ruby_logger.rb | 80 ++++++++++++++ pkg/slf4r-0.1.0/lib/slf4r/version.rb | 3 + pkg/slf4r-0.1.0/lib/slf4r/wrapped_logger.rb | 60 +++++++++++ pkg/slf4r-0.1.0/test/test_slf4r.rb | 0 test/test_slf4r.rb | 0 35 files changed, 1121 insertions(+) create mode 100644 History.txt create mode 100644 Manifest.txt create mode 100644 README.txt create mode 100644 README.txt~ create mode 100644 Rakefile create mode 100644 lib/log4r_adapter.rb create mode 100644 lib/logging_adapter.rb create mode 100644 lib/ruby_logger_adapter.rb create mode 100644 lib/slf4r.rb create mode 100644 lib/slf4r/abstract_logger_facade.rb create mode 100644 lib/slf4r/logger.rb create mode 100644 lib/slf4r/logging_logger.rb create mode 100644 lib/slf4r/noop_logger.rb create mode 100644 lib/slf4r/ruby_logger.rb create mode 100644 lib/slf4r/version.rb create mode 100644 lib/slf4r/wrapped_logger.rb create mode 100644 pkg/slf4r-0.1.0.gem create mode 100644 pkg/slf4r-0.1.0.tgz create mode 100644 pkg/slf4r-0.1.0/History.txt create mode 100644 pkg/slf4r-0.1.0/Manifest.txt create mode 100644 pkg/slf4r-0.1.0/README.txt create mode 100644 pkg/slf4r-0.1.0/Rakefile create mode 100644 pkg/slf4r-0.1.0/lib/log4r_adapter.rb create mode 100644 pkg/slf4r-0.1.0/lib/logging_adapter.rb create mode 100644 pkg/slf4r-0.1.0/lib/ruby_logger_adapter.rb create mode 100644 pkg/slf4r-0.1.0/lib/slf4r.rb create mode 100644 pkg/slf4r-0.1.0/lib/slf4r/abstract_logger_facade.rb create mode 100644 pkg/slf4r-0.1.0/lib/slf4r/logger.rb create mode 100644 pkg/slf4r-0.1.0/lib/slf4r/logging_logger.rb create mode 100644 pkg/slf4r-0.1.0/lib/slf4r/noop_logger.rb create mode 100644 pkg/slf4r-0.1.0/lib/slf4r/ruby_logger.rb create mode 100644 pkg/slf4r-0.1.0/lib/slf4r/version.rb create mode 100644 pkg/slf4r-0.1.0/lib/slf4r/wrapped_logger.rb create mode 100644 pkg/slf4r-0.1.0/test/test_slf4r.rb create mode 100644 test/test_slf4r.rb diff --git a/History.txt b/History.txt new file mode 100644 index 0000000..f817384 --- /dev/null +++ b/History.txt @@ -0,0 +1,6 @@ +=== 1.0.0 / 2008-12-19 + +* 1 major enhancement + + * Birthday! + diff --git a/Manifest.txt b/Manifest.txt new file mode 100644 index 0000000..651bf51 --- /dev/null +++ b/Manifest.txt @@ -0,0 +1,16 @@ +History.txt +Manifest.txt +README.txt +Rakefile +lib/log4r_adapter.rb +lib/logging_adapter.rb +lib/ruby_logger_adapter.rb +lib/slf4r.rb +lib/slf4r/abstract_logger_facade.rb +lib/slf4r/logger.rb +lib/slf4r/logging_logger.rb +lib/slf4r/noop_logger.rb +lib/slf4r/ruby_logger.rb +lib/slf4r/version.rb +lib/slf4r/wrapped_logger.rb +test/test_slf4r.rb diff --git a/README.txt b/README.txt new file mode 100644 index 0000000..ad8b747 --- /dev/null +++ b/README.txt @@ -0,0 +1,99 @@ += slf4r + +* FIX (url) + +== DESCRIPTION: + +the main idea is from www.slf4j.org which is to provide a uniform interface for instantiating und using of a logger. but the actual logging is done by some third party logging framework. + +one idea is to have a logger per class or object (see ). in ruby you would have something like + + @logger = Slf4r::LoggerFacade.new(self.class) + +or the convinience module + + include Slf4r::Logger + +if the underlying logging framework allows it (like logging or log4r) then you get a logger for each namespace of your class and create a hierachy of loggers. with this you can control the log level for each logger and/or namespace. + +for example you have a framework A with namespace 'A' then you can set the log level for the logger with name 'A' to debug and get all the debug from the framework, etc. + +in case you have a framework B which uses log4r internally you can use the 'log4r_adapter' to delegate the logger creation from log4r to slf4r. in this way you have only one place where logging gets configured and controlled. + +== FEATURES/PROBLEMS: + +* can replace other logging frameworks via adapters + +* for the actual logging it depends on a third party logging framework + +== SYNOPSIS: + +=== using with logging gem + +require 'slf4r/logging_logger' + +Logging.init :debug, :info, :warn, :error + +appender = Logging::Appender.stdout +appender.layout = Logging::Layouts::Pattern.new(:pattern => "%d [%-l] (%c) %m\n") +logger = Logging::Logger.new(:root) +logger.add_appenders(appender) +logger.level = :debug +logger.info "initialized logger . . ." + +=== using with ruby logger + +require 'slf4r/ruby_logger' + +=== using the log4r adapter + +require 'log4r_adapter' + +=== using with rails/merb/datamapper logger + +require 'slf4r/wrappered_logger' + +LoggerFacade4WrappedLogger.logger(framwork_logger) + +=== getting an instance of a logger + +Slf4r::LoggerFacade.new("Full::Qualified::Class::Name") + +== REQUIREMENTS: + +* logging for slf4r/logging_logger + +* log4r for slf4r/log4r_logger + +== INSTALL: + +* sudo gem install slf4r + +* sudo gem install logging # optional + +* sudo gem install log4r # optional + +== LICENSE: + +(The MIT License) + +Copyright (c) 2009 kristian meier + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +'Software'), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/README.txt~ b/README.txt~ new file mode 100644 index 0000000..3257726 --- /dev/null +++ b/README.txt~ @@ -0,0 +1,99 @@ += slf4r + +* FIX (url) + +== DESCRIPTION: + +the main ideas are from www.slf4j.org where the main idea is to provide a uniform interface for using instantiating und using a logger. but the actual logging is done by some third party logging framework. + +one idea is to have a logger per class or object (see ). in ruby you would have something like + + @logger = Slf4r::LoggerFacade.new(self.class) + +or the convinience module + + include Slf4r::Logger + +if the underlying logging framework allows it (like logging or log4r) then you get a logger for each namespace of your class and create a hierachy of loggers. with this you can control the log level for each logger and/or namespace. + +for example you have a framework A with namespace 'A' then you can set the log level for the logger with name 'A' to debug and get all the debug from the framework, etc. + +in case you have a framework B which uses log4r internally you can use the 'log4r_adapter' to delegate the logger creation from log4r to slf4r. in this way you have only one place where logging gets configured and controlled. + +== FEATURES/PROBLEMS: + +* can replace other logging frameworks via adapters + +* for the actual logging it depends on a third party logging framework + +== SYNOPSIS: + +=== using with logging gem + +require 'slf4r/logging_logger' + +Logging.init :debug, :info, :warn, :error + +appender = Logging::Appender.stdout +appender.layout = Logging::Layouts::Pattern.new(:pattern => "%d [%-l] (%c) %m\n") +logger = Logging::Logger.new(:root) +logger.add_appenders(appender) +logger.level = :debug +logger.info "initialized logger . . ." + +=== using with ruby logger + +require 'slf4r/ruby_logger' + +=== using the log4r adapter + +require 'log4r_adapter' + +=== using with rails/merb/datamapper logger + +require 'slf4r/wrappered_logger' + +LoggerFacade4WrappedLogger.logger(framwork_logger) + +=== getting an instance of a logger + +Slf4r::LoggerFacade.new("Full::Qualified::Class::Name") + +== REQUIREMENTS: + +* logging for slf4r/logging_logger + +* log4r for slf4r/log4r_logger + +== INSTALL: + +* sudo gem install slf4r + +* sudo gem install logging # optional + +* sudo gem install log4r # optional + +== LICENSE: + +(The MIT License) + +Copyright (c) 2009 kristian meier + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +'Software'), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/Rakefile b/Rakefile new file mode 100644 index 0000000..53b5341 --- /dev/null +++ b/Rakefile @@ -0,0 +1,19 @@ +# -*- ruby -*- + +require 'rubygems' +require 'hoe' +require './lib/slf4r.rb' + +Hoe.new('slf4r', Slf4r::VERSION) do |p| + # p.rubyforge_name = 'slf4rx' # if different than lowercase project name + p.developer('kristian', 'FIX@example.com') + p.changes = p.paragraphs_of('History.txt', 0..1).join("\n\n") +end + +desc 'Install the package as a gem.' +task :install => [:clean, :package] do + gem = Dir['pkg/*.gem'].first + sh "gem install --local #{gem} --no-ri --no-rdoc" +end + +# vim: syntax=Ruby diff --git a/lib/log4r_adapter.rb b/lib/log4r_adapter.rb new file mode 100644 index 0000000..2654040 --- /dev/null +++ b/lib/log4r_adapter.rb @@ -0,0 +1,12 @@ +module Log4r + class Logger + + def initialize(_fullname, _level=nil, _additive=true, _trace=false) + @logger = ::Slf4r::LoggerFacade.new(_fullname) + end + + def method_missing(method, *args, &block) + @logger.send(method, *args, &block) if @logger.respond_to?(method) + end + end +end diff --git a/lib/logging_adapter.rb b/lib/logging_adapter.rb new file mode 100644 index 0000000..291b4ef --- /dev/null +++ b/lib/logging_adapter.rb @@ -0,0 +1,16 @@ +module Logging + class Logger + + def initialize(name) + @logger = ::Slf4r::LoggerFacade.new(name) + end + + class << self + alias :[] :new + end + + def method_missing(method, *args, &block) + @logger.send(method, *args, &block) if @logger.respond_to?(method) + end + end +end diff --git a/lib/ruby_logger_adapter.rb b/lib/ruby_logger_adapter.rb new file mode 100644 index 0000000..ed70836 --- /dev/null +++ b/lib/ruby_logger_adapter.rb @@ -0,0 +1,10 @@ +class Logger + + def initialize(*args) + @logger = ::Slf4r::LoggerFacade.new(:root) + end + + def method_missing(method, *args, &block) + @logger.send(method, *args, &block) if @logger.respond_to?(method) + end +end diff --git a/lib/slf4r.rb b/lib/slf4r.rb new file mode 100644 index 0000000..e2e20d1 --- /dev/null +++ b/lib/slf4r.rb @@ -0,0 +1,8 @@ +require 'rubygems' +require 'pathname' + +dir = Pathname(__FILE__).dirname.expand_path + 'slf4r' + +require dir + 'version' +require dir + 'logger' + diff --git a/lib/slf4r/abstract_logger_facade.rb b/lib/slf4r/abstract_logger_facade.rb new file mode 100644 index 0000000..b5b72be --- /dev/null +++ b/lib/slf4r/abstract_logger_facade.rb @@ -0,0 +1,70 @@ +module Slf4r + class AbstractLoggerFacade + + protected + + def format(exception) + ": #{exception.message}:\n\t#{exception.backtrace.join('\n\t')}" if exception + end + + def _debug(msg) + raise NotImplementedError + end + + def _info(msg) + raise NotImplementedError + end + + def _warn(msg) + raise NotImplementedError + end + + def _error(msg) + raise NotImplementedError + end + + public + + attr_reader :name + + def initialize(name) + @name = name + end + + def debug? + raise NotImplementedError + end + + def debug(msg = nil, exception = nil) + msg, exception = yield if block_given? + _debug("#{msg}#{format(exception)}") + end + + def info? + raise NotImplementedError + end + + def info(msg = nil, exception = nil) + msg, exception = yield if block_given? + _info("#{msg}#{format(exception)}") + end + + def warn? + raise NotImplementedError + end + + def warn(msg = nil, exception = nil) + msg, exception = yield if block_given? + _warn("#{msg}#{format(exception)}") + end + + def error? + raise NotImplementedError + end + + def error(msg = nil, exception = nil) + msg, exception = yield if block_given? + _error("#{msg}#{format(exception)}") + end + end +end diff --git a/lib/slf4r/logger.rb b/lib/slf4r/logger.rb new file mode 100644 index 0000000..84f953a --- /dev/null +++ b/lib/slf4r/logger.rb @@ -0,0 +1,9 @@ +module Slf4r + module Logger + + def logger + @logger ||= LoggerFacade.new(self.class == Class ? name : self.class) + end + + end +end diff --git a/lib/slf4r/logging_logger.rb b/lib/slf4r/logging_logger.rb new file mode 100644 index 0000000..d3b85b8 --- /dev/null +++ b/lib/slf4r/logging_logger.rb @@ -0,0 +1,63 @@ +require 'logging' +require 'slf4r/abstract_logger_facade' + +module Slf4r + class LoggerFacade < AbstractLoggerFacade + + attr_reader :logger + + def initialize(name) + super + log_name = nil + name.to_s.split("::").each do |n| + if log_name + log_name += "::#{n}" + else + log_name = n + end + @logger = ::Logging::Logger.new(log_name) + end + end + + private + + def log(type, msg) + @logger.add(type, msg) + end + + public + + def debug? + @logger.level == 0 + end + + def _debug(msg) + log(0, msg) + end + + def info? + @logger.level <= 1 + end + + def _info(msg) + log(1, msg) + end + + def warn? + @logger.level <= 2 + end + + def _warn(msg) + log(2, msg) + end + + def error? + @logger.level <= 3 + end + + def _error(msg) + log(3, msg) + end + + end +end diff --git a/lib/slf4r/noop_logger.rb b/lib/slf4r/noop_logger.rb new file mode 100644 index 0000000..9e6e591 --- /dev/null +++ b/lib/slf4r/noop_logger.rb @@ -0,0 +1,40 @@ +module Slf4r + class LoggerFacade + + def initialize(name) + @name = name + end + + public + + attr_reader :name + + def debug? + false + end + + def debug(msg = nil, exception = nil) + end + + def info? + false + end + + def info(msg = nil, exception = nil) + end + + def warn? + false + end + + def warn(msg = nil, exception = nil) + end + + def error? + false + end + + def error(msg = nil, exception = nil) + end + end +end diff --git a/lib/slf4r/ruby_logger.rb b/lib/slf4r/ruby_logger.rb new file mode 100644 index 0000000..16977b5 --- /dev/null +++ b/lib/slf4r/ruby_logger.rb @@ -0,0 +1,80 @@ +require 'logger.rb' +require 'slf4r/abstract_logger_facade' + +module Slf4r + class LoggerFacade4RubyLogger + + @@level = ::Logger::INFO + @@file = STDERR + @@datetime_format = "%Y-%m-%d %H:%M:%S " + + def self.new_logger_facade(name) + @name = name + @logger = ::Logger.new(@@file) + @logger.level = @@level + @logger.datetime_format = @@datetime_format + @logger + end + + def self.level=(level) + @@level = level.instance_of?(Fixnum) ? level : + ::Logger.get_const(level.to_s.upcase) + end + + def self.datetime_format=(format) + @@datetime_format = format + end + + def self.file=(file) + @@file = file + end + end + + class LoggerFacade < AbstractLoggerFacade + + def initialize(name) + super + @logger = LoggerFacade4RubyLogger.new_logger_facade(name) + end + + private + + def log(type, msg) + @logger.add(type, msg, @name) + end + + public + + def debug? + @logger.debug? + end + + def _debug(msg) + log(::Logger::DEBUG, msg) + end + + def info? + @logger.info? + end + + def _info(msg) + log(::Logger::INFO, msg) + end + + def warn? + @logger.warn? + end + + def _warn(msg) + log(::Logger::WARN, msg) + end + + def error? + @logger.error? + end + + def _error(msg) + log(::Logger::ERROR, msg) + end + end +end diff --git a/lib/slf4r/version.rb b/lib/slf4r/version.rb new file mode 100644 index 0000000..3eb6a9c --- /dev/null +++ b/lib/slf4r/version.rb @@ -0,0 +1,3 @@ +module Slf4r + VERSION = '0.1.0' +end diff --git a/lib/slf4r/wrapped_logger.rb b/lib/slf4r/wrapped_logger.rb new file mode 100644 index 0000000..83219bf --- /dev/null +++ b/lib/slf4r/wrapped_logger.rb @@ -0,0 +1,60 @@ +require 'abstract_logger_facade' +module Slf4r + class LoggerFacade4WrappedLogger + + @@logger = nil + + def self.new_logger_facade(name) + raise "set logger first" unless @@logger + @@logger + end + + def self.logger=(logger) + @@logger = logger + end + end + + class LoggerFacade < AbstractLoggerFacade + + def initialize(name) + super + @logger = LoggerFacade4WrappedLogger.new_logger_facade(name) + end + + protected + + def _debug(msg) + @logger.debug(msg) + end + + def _info(msg) + @logger.info(msg) + end + + def _warn(msg) + @logger.warn(msg) + end + + def _error(msg) + @logger.error(msg) + end + + public + + def debug? + @logger.debug? + end + + def info? + @logger.info? + end + + def warn? + @logger.warn? + end + + def error? + @logger.error? + end + end +end diff --git a/pkg/slf4r-0.1.0.gem b/pkg/slf4r-0.1.0.gem new file mode 100644 index 0000000000000000000000000000000000000000..e987e377d79ee083663b958524f6dac454e03d54 GIT binary patch literal 7680 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 G2L1scafnd> literal 0 HcmV?d00001 diff --git a/pkg/slf4r-0.1.0.tgz b/pkg/slf4r-0.1.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..461c0c9744cdff422bd94a20b8b295b63cfa468c GIT binary patch literal 3992 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 "%d [%-l] (%c) %m\n") +logger = Logging::Logger.new(:root) +logger.add_appenders(appender) +logger.level = :debug +logger.info "initialized logger . . ." + +=== using with ruby logger + +require 'slf4r/ruby_logger' + +=== using the log4r adapter + +require 'log4r_adapter' + +=== using with rails/merb/datamapper logger + +require 'slf4r/wrappered_logger' + +LoggerFacade4WrappedLogger.logger(framwork_logger) + +=== getting an instance of a logger + +Slf4r::LoggerFacade.new("Full::Qualified::Class::Name") + +== REQUIREMENTS: + +* logging for slf4r/logging_logger + +* log4r for slf4r/log4r_logger + +== INSTALL: + +* sudo gem install slf4r + +* sudo gem install logging # optional + +* sudo gem install log4r # optional + +== LICENSE: + +(The MIT License) + +Copyright (c) 2009 kristian meier + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +'Software'), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/pkg/slf4r-0.1.0/Rakefile b/pkg/slf4r-0.1.0/Rakefile new file mode 100644 index 0000000..53b5341 --- /dev/null +++ b/pkg/slf4r-0.1.0/Rakefile @@ -0,0 +1,19 @@ +# -*- ruby -*- + +require 'rubygems' +require 'hoe' +require './lib/slf4r.rb' + +Hoe.new('slf4r', Slf4r::VERSION) do |p| + # p.rubyforge_name = 'slf4rx' # if different than lowercase project name + p.developer('kristian', 'FIX@example.com') + p.changes = p.paragraphs_of('History.txt', 0..1).join("\n\n") +end + +desc 'Install the package as a gem.' +task :install => [:clean, :package] do + gem = Dir['pkg/*.gem'].first + sh "gem install --local #{gem} --no-ri --no-rdoc" +end + +# vim: syntax=Ruby diff --git a/pkg/slf4r-0.1.0/lib/log4r_adapter.rb b/pkg/slf4r-0.1.0/lib/log4r_adapter.rb new file mode 100644 index 0000000..2654040 --- /dev/null +++ b/pkg/slf4r-0.1.0/lib/log4r_adapter.rb @@ -0,0 +1,12 @@ +module Log4r + class Logger + + def initialize(_fullname, _level=nil, _additive=true, _trace=false) + @logger = ::Slf4r::LoggerFacade.new(_fullname) + end + + def method_missing(method, *args, &block) + @logger.send(method, *args, &block) if @logger.respond_to?(method) + end + end +end diff --git a/pkg/slf4r-0.1.0/lib/logging_adapter.rb b/pkg/slf4r-0.1.0/lib/logging_adapter.rb new file mode 100644 index 0000000..291b4ef --- /dev/null +++ b/pkg/slf4r-0.1.0/lib/logging_adapter.rb @@ -0,0 +1,16 @@ +module Logging + class Logger + + def initialize(name) + @logger = ::Slf4r::LoggerFacade.new(name) + end + + class << self + alias :[] :new + end + + def method_missing(method, *args, &block) + @logger.send(method, *args, &block) if @logger.respond_to?(method) + end + end +end diff --git a/pkg/slf4r-0.1.0/lib/ruby_logger_adapter.rb b/pkg/slf4r-0.1.0/lib/ruby_logger_adapter.rb new file mode 100644 index 0000000..ed70836 --- /dev/null +++ b/pkg/slf4r-0.1.0/lib/ruby_logger_adapter.rb @@ -0,0 +1,10 @@ +class Logger + + def initialize(*args) + @logger = ::Slf4r::LoggerFacade.new(:root) + end + + def method_missing(method, *args, &block) + @logger.send(method, *args, &block) if @logger.respond_to?(method) + end +end diff --git a/pkg/slf4r-0.1.0/lib/slf4r.rb b/pkg/slf4r-0.1.0/lib/slf4r.rb new file mode 100644 index 0000000..e2e20d1 --- /dev/null +++ b/pkg/slf4r-0.1.0/lib/slf4r.rb @@ -0,0 +1,8 @@ +require 'rubygems' +require 'pathname' + +dir = Pathname(__FILE__).dirname.expand_path + 'slf4r' + +require dir + 'version' +require dir + 'logger' + diff --git a/pkg/slf4r-0.1.0/lib/slf4r/abstract_logger_facade.rb b/pkg/slf4r-0.1.0/lib/slf4r/abstract_logger_facade.rb new file mode 100644 index 0000000..b5b72be --- /dev/null +++ b/pkg/slf4r-0.1.0/lib/slf4r/abstract_logger_facade.rb @@ -0,0 +1,70 @@ +module Slf4r + class AbstractLoggerFacade + + protected + + def format(exception) + ": #{exception.message}:\n\t#{exception.backtrace.join('\n\t')}" if exception + end + + def _debug(msg) + raise NotImplementedError + end + + def _info(msg) + raise NotImplementedError + end + + def _warn(msg) + raise NotImplementedError + end + + def _error(msg) + raise NotImplementedError + end + + public + + attr_reader :name + + def initialize(name) + @name = name + end + + def debug? + raise NotImplementedError + end + + def debug(msg = nil, exception = nil) + msg, exception = yield if block_given? + _debug("#{msg}#{format(exception)}") + end + + def info? + raise NotImplementedError + end + + def info(msg = nil, exception = nil) + msg, exception = yield if block_given? + _info("#{msg}#{format(exception)}") + end + + def warn? + raise NotImplementedError + end + + def warn(msg = nil, exception = nil) + msg, exception = yield if block_given? + _warn("#{msg}#{format(exception)}") + end + + def error? + raise NotImplementedError + end + + def error(msg = nil, exception = nil) + msg, exception = yield if block_given? + _error("#{msg}#{format(exception)}") + end + end +end diff --git a/pkg/slf4r-0.1.0/lib/slf4r/logger.rb b/pkg/slf4r-0.1.0/lib/slf4r/logger.rb new file mode 100644 index 0000000..84f953a --- /dev/null +++ b/pkg/slf4r-0.1.0/lib/slf4r/logger.rb @@ -0,0 +1,9 @@ +module Slf4r + module Logger + + def logger + @logger ||= LoggerFacade.new(self.class == Class ? name : self.class) + end + + end +end diff --git a/pkg/slf4r-0.1.0/lib/slf4r/logging_logger.rb b/pkg/slf4r-0.1.0/lib/slf4r/logging_logger.rb new file mode 100644 index 0000000..d3b85b8 --- /dev/null +++ b/pkg/slf4r-0.1.0/lib/slf4r/logging_logger.rb @@ -0,0 +1,63 @@ +require 'logging' +require 'slf4r/abstract_logger_facade' + +module Slf4r + class LoggerFacade < AbstractLoggerFacade + + attr_reader :logger + + def initialize(name) + super + log_name = nil + name.to_s.split("::").each do |n| + if log_name + log_name += "::#{n}" + else + log_name = n + end + @logger = ::Logging::Logger.new(log_name) + end + end + + private + + def log(type, msg) + @logger.add(type, msg) + end + + public + + def debug? + @logger.level == 0 + end + + def _debug(msg) + log(0, msg) + end + + def info? + @logger.level <= 1 + end + + def _info(msg) + log(1, msg) + end + + def warn? + @logger.level <= 2 + end + + def _warn(msg) + log(2, msg) + end + + def error? + @logger.level <= 3 + end + + def _error(msg) + log(3, msg) + end + + end +end diff --git a/pkg/slf4r-0.1.0/lib/slf4r/noop_logger.rb b/pkg/slf4r-0.1.0/lib/slf4r/noop_logger.rb new file mode 100644 index 0000000..9e6e591 --- /dev/null +++ b/pkg/slf4r-0.1.0/lib/slf4r/noop_logger.rb @@ -0,0 +1,40 @@ +module Slf4r + class LoggerFacade + + def initialize(name) + @name = name + end + + public + + attr_reader :name + + def debug? + false + end + + def debug(msg = nil, exception = nil) + end + + def info? + false + end + + def info(msg = nil, exception = nil) + end + + def warn? + false + end + + def warn(msg = nil, exception = nil) + end + + def error? + false + end + + def error(msg = nil, exception = nil) + end + end +end diff --git a/pkg/slf4r-0.1.0/lib/slf4r/ruby_logger.rb b/pkg/slf4r-0.1.0/lib/slf4r/ruby_logger.rb new file mode 100644 index 0000000..16977b5 --- /dev/null +++ b/pkg/slf4r-0.1.0/lib/slf4r/ruby_logger.rb @@ -0,0 +1,80 @@ +require 'logger.rb' +require 'slf4r/abstract_logger_facade' + +module Slf4r + class LoggerFacade4RubyLogger + + @@level = ::Logger::INFO + @@file = STDERR + @@datetime_format = "%Y-%m-%d %H:%M:%S " + + def self.new_logger_facade(name) + @name = name + @logger = ::Logger.new(@@file) + @logger.level = @@level + @logger.datetime_format = @@datetime_format + @logger + end + + def self.level=(level) + @@level = level.instance_of?(Fixnum) ? level : + ::Logger.get_const(level.to_s.upcase) + end + + def self.datetime_format=(format) + @@datetime_format = format + end + + def self.file=(file) + @@file = file + end + end + + class LoggerFacade < AbstractLoggerFacade + + def initialize(name) + super + @logger = LoggerFacade4RubyLogger.new_logger_facade(name) + end + + private + + def log(type, msg) + @logger.add(type, msg, @name) + end + + public + + def debug? + @logger.debug? + end + + def _debug(msg) + log(::Logger::DEBUG, msg) + end + + def info? + @logger.info? + end + + def _info(msg) + log(::Logger::INFO, msg) + end + + def warn? + @logger.warn? + end + + def _warn(msg) + log(::Logger::WARN, msg) + end + + def error? + @logger.error? + end + + def _error(msg) + log(::Logger::ERROR, msg) + end + end +end diff --git a/pkg/slf4r-0.1.0/lib/slf4r/version.rb b/pkg/slf4r-0.1.0/lib/slf4r/version.rb new file mode 100644 index 0000000..3eb6a9c --- /dev/null +++ b/pkg/slf4r-0.1.0/lib/slf4r/version.rb @@ -0,0 +1,3 @@ +module Slf4r + VERSION = '0.1.0' +end diff --git a/pkg/slf4r-0.1.0/lib/slf4r/wrapped_logger.rb b/pkg/slf4r-0.1.0/lib/slf4r/wrapped_logger.rb new file mode 100644 index 0000000..83219bf --- /dev/null +++ b/pkg/slf4r-0.1.0/lib/slf4r/wrapped_logger.rb @@ -0,0 +1,60 @@ +require 'abstract_logger_facade' +module Slf4r + class LoggerFacade4WrappedLogger + + @@logger = nil + + def self.new_logger_facade(name) + raise "set logger first" unless @@logger + @@logger + end + + def self.logger=(logger) + @@logger = logger + end + end + + class LoggerFacade < AbstractLoggerFacade + + def initialize(name) + super + @logger = LoggerFacade4WrappedLogger.new_logger_facade(name) + end + + protected + + def _debug(msg) + @logger.debug(msg) + end + + def _info(msg) + @logger.info(msg) + end + + def _warn(msg) + @logger.warn(msg) + end + + def _error(msg) + @logger.error(msg) + end + + public + + def debug? + @logger.debug? + end + + def info? + @logger.info? + end + + def warn? + @logger.warn? + end + + def error? + @logger.error? + end + end +end diff --git a/pkg/slf4r-0.1.0/test/test_slf4r.rb b/pkg/slf4r-0.1.0/test/test_slf4r.rb new file mode 100644 index 0000000..e69de29 diff --git a/test/test_slf4r.rb b/test/test_slf4r.rb new file mode 100644 index 0000000..e69de29