small maintanance
This commit is contained in:
parent
7543236f4f
commit
c94f6eaa78
@ -187,12 +187,6 @@ module Util
|
|||||||
VERSION = "1.2.8"
|
VERSION = "1.2.8"
|
||||||
ProgName = "#{File.basename(__FILE__)}/#{VERSION}"
|
ProgName = "#{File.basename(__FILE__)}/#{VERSION}"
|
||||||
|
|
||||||
class Error < RuntimeError # :nodoc:
|
|
||||||
end
|
|
||||||
# not used after 1.2.7. just for compat.
|
|
||||||
class ShiftingError < Error # :nodoc:
|
|
||||||
end
|
|
||||||
|
|
||||||
# Logging severity.
|
# Logging severity.
|
||||||
module Severity
|
module Severity
|
||||||
# Low-level information, mostly for developers
|
# Low-level information, mostly for developers
|
||||||
@ -507,129 +501,5 @@ module Util
|
|||||||
Time.mktime(t.year, t.month, t.mday, 23, 59, 59)
|
Time.mktime(t.year, t.month, t.mday, 23, 59, 59)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# == Description
|
|
||||||
#
|
|
||||||
# Application -- Add logging support to your application.
|
|
||||||
#
|
|
||||||
# == Usage
|
|
||||||
#
|
|
||||||
# 1. Define your application class as a sub-class of this class.
|
|
||||||
# 2. Override 'run' method in your class to do many things.
|
|
||||||
# 3. Instantiate it and invoke 'start'.
|
|
||||||
#
|
|
||||||
# == Example
|
|
||||||
#
|
|
||||||
# class FooApp < Application
|
|
||||||
# def initialize(foo_app, application_specific, arguments)
|
|
||||||
# super('FooApp') # Name of the application.
|
|
||||||
# end
|
|
||||||
#
|
|
||||||
# def run
|
|
||||||
# ...
|
|
||||||
# log(WARN, 'warning', 'my_method1')
|
|
||||||
# ...
|
|
||||||
# @log.error('my_method2') { 'Error!' }
|
|
||||||
# ...
|
|
||||||
# end
|
|
||||||
# end
|
|
||||||
#
|
|
||||||
# status = FooApp.new(....).start
|
|
||||||
#
|
|
||||||
class Application
|
|
||||||
include Logger::Severity
|
|
||||||
|
|
||||||
# Name of the application given at initialize.
|
|
||||||
attr_reader :appname
|
|
||||||
|
|
||||||
#
|
|
||||||
# == Synopsis
|
|
||||||
#
|
|
||||||
# Application.new(appname = '')
|
|
||||||
#
|
|
||||||
# == Args
|
|
||||||
#
|
|
||||||
# +appname+:: Name of the application.
|
|
||||||
#
|
|
||||||
# == Description
|
|
||||||
#
|
|
||||||
# Create an instance. Log device is +STDERR+ by default. This can be
|
|
||||||
# changed with #set_log.
|
|
||||||
#
|
|
||||||
def initialize(appname = nil)
|
|
||||||
@appname = appname
|
|
||||||
@log = Logger.new(STDERR)
|
|
||||||
@log.progname = @appname
|
|
||||||
@level = @log.level
|
|
||||||
end
|
|
||||||
|
|
||||||
#
|
|
||||||
# Start the application. Return the status code.
|
|
||||||
#
|
|
||||||
def start
|
|
||||||
status = -1
|
|
||||||
begin
|
|
||||||
log(INFO, "Start of #{ @appname }.")
|
|
||||||
status = run
|
|
||||||
rescue
|
|
||||||
log(FATAL, "Detected an exception. Stopping ... #{$!} (#{$!.class})\n" << $@.join("\n"))
|
|
||||||
ensure
|
|
||||||
log(INFO, "End of #{ @appname }. (status: #{ status.to_s })")
|
|
||||||
end
|
|
||||||
status
|
|
||||||
end
|
|
||||||
|
|
||||||
# Logger for this application. See the class Logger for an explanation.
|
|
||||||
def logger
|
|
||||||
@log
|
|
||||||
end
|
|
||||||
|
|
||||||
#
|
|
||||||
# Sets the logger for this application. See the class Logger for an explanation.
|
|
||||||
#
|
|
||||||
def logger=(logger)
|
|
||||||
@log = logger
|
|
||||||
@log.progname = @appname
|
|
||||||
@log.level = @level
|
|
||||||
end
|
|
||||||
|
|
||||||
#
|
|
||||||
# Sets the log device for this application. See <tt>Logger.new</tt> for an explanation
|
|
||||||
# of the arguments.
|
|
||||||
#
|
|
||||||
def set_log(logdev)
|
|
||||||
@log = Logger.new(logdev)
|
|
||||||
@log.progname = @appname
|
|
||||||
@log.level = @level
|
|
||||||
end
|
|
||||||
|
|
||||||
def log=(logdev)
|
|
||||||
set_log(logdev)
|
|
||||||
end
|
|
||||||
|
|
||||||
#
|
|
||||||
# Set the logging threshold, just like <tt>Logger#level=</tt>.
|
|
||||||
#
|
|
||||||
def level=(level)
|
|
||||||
@level = level
|
|
||||||
@log.level = @level
|
|
||||||
end
|
|
||||||
|
|
||||||
#
|
|
||||||
# See Logger#add. This application's +appname+ is used.
|
|
||||||
#
|
|
||||||
def log(severity, message = nil, &block)
|
|
||||||
@log.add(severity, message, @appname, &block) if @log
|
|
||||||
end
|
|
||||||
|
|
||||||
private
|
|
||||||
|
|
||||||
def run
|
|
||||||
# TODO: should be an NotImplementedError
|
|
||||||
raise RuntimeError.new('Method run must be defined in the derived class.')
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -13,6 +13,9 @@ module Mom
|
|||||||
assert_equal Array , slot.slots.class
|
assert_equal Array , slot.slots.class
|
||||||
assert_equal :caller , slot.slots.first
|
assert_equal :caller , slot.slots.first
|
||||||
end
|
end
|
||||||
|
def test_to_s
|
||||||
|
assert_equal "[message,caller]" , slot.to_s
|
||||||
|
end
|
||||||
def test_create_fail_none
|
def test_create_fail_none
|
||||||
assert_raises {slot(nil)}
|
assert_raises {slot(nil)}
|
||||||
end
|
end
|
||||||
|
@ -18,5 +18,8 @@ module Mom
|
|||||||
def test_def_const
|
def test_def_const
|
||||||
assert_equal "hi" , @instruction.constant.to_string
|
assert_equal "hi" , @instruction.constant.to_string
|
||||||
end
|
end
|
||||||
|
def test_to_s
|
||||||
|
assert_equal "[StringConstant]" , @definition.to_s
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
15
test/util/test_logger.rb
Normal file
15
test/util/test_logger.rb
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
require "util/logging"
|
||||||
|
module Util
|
||||||
|
|
||||||
|
class LoggerTest < MiniTest::Test
|
||||||
|
include Util::Logging
|
||||||
|
log_level :info
|
||||||
|
|
||||||
|
def test_debug
|
||||||
|
self.log.debug "Just good to know"
|
||||||
|
end
|
||||||
|
def test_unknown
|
||||||
|
self.log.debug "Whats this"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
Loading…
x
Reference in New Issue
Block a user