mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* logger.rb: removed unmaintain code.
[Feature #9860][ruby-core:62724] * test/logger/test_application.rb: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46650 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
d3a54f6fe8
commit
931d2fd5d8
4 changed files with 9 additions and 177 deletions
|
@ -1,3 +1,9 @@
|
|||
Wed Jul 2 09:48:42 2014 SHIBATA Hiroshi <shibata.hiroshi@gmail.com>
|
||||
|
||||
* logger.rb: removed unmaintain code.
|
||||
[Feature #9860][ruby-core:62724]
|
||||
* test/logger/test_application.rb: ditto.
|
||||
|
||||
Wed Jul 2 03:20:00 2014 Charlie Somerville <charliesome@ruby-lang.org>
|
||||
|
||||
* node.c (dump_node): handle nd_value == (NODE *)-1 to mean this
|
||||
|
|
3
NEWS
3
NEWS
|
@ -138,6 +138,9 @@ with all sufficient information, see the ChangeLog file.
|
|||
* lib/uri
|
||||
* support RFC 3986. [Feature #2542]
|
||||
|
||||
* Logger
|
||||
* Logger::Application is extracted to logger-application gem. It's unmaintain code.
|
||||
|
||||
* Prime
|
||||
* incompatible changes:
|
||||
* Prime.prime? now returns false for negative numbers. This method
|
||||
|
|
123
lib/logger.rb
123
lib/logger.rb
|
@ -738,127 +738,4 @@ private
|
|||
return true
|
||||
end
|
||||
end
|
||||
|
||||
#
|
||||
# == Description
|
||||
#
|
||||
# Logger::Application --- Add logging support to your application.
|
||||
#
|
||||
# == Usage
|
||||
#
|
||||
# 1. Define your application class as a sub-class of this class.
|
||||
# 2. Override the +run+ method in your class to do many things.
|
||||
# 3. Instantiate it and invoke #start.
|
||||
#
|
||||
# == Example
|
||||
#
|
||||
# class FooApp < Logger::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
|
||||
|
||||
#
|
||||
# :call-seq:
|
||||
# Logger::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 })")
|
||||
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, shift_age = 0, shift_size = 1024000)
|
||||
@log = Logger.new(logdev, shift_age, shift_size)
|
||||
@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
|
||||
|
|
|
@ -1,54 +0,0 @@
|
|||
# coding: US-ASCII
|
||||
require 'test/unit'
|
||||
require 'logger'
|
||||
require 'tempfile'
|
||||
|
||||
class TestLoggerApplication < Test::Unit::TestCase
|
||||
def setup
|
||||
@app = Logger::Application.new('appname')
|
||||
@tempfile = Tempfile.new("logger")
|
||||
@tempfile.close
|
||||
@filename = @tempfile.path
|
||||
File.unlink(@filename)
|
||||
end
|
||||
|
||||
def teardown
|
||||
@tempfile.close(true)
|
||||
end
|
||||
|
||||
def test_initialize
|
||||
app = Logger::Application.new('appname')
|
||||
assert_equal('appname', app.appname)
|
||||
end
|
||||
|
||||
def test_start
|
||||
@app.set_log(@filename)
|
||||
begin
|
||||
@app.level = Logger::UNKNOWN
|
||||
@app.start # logs FATAL log
|
||||
assert_equal(1, File.read(@filename).split(/\n/).size)
|
||||
ensure
|
||||
@app.logger.close
|
||||
end
|
||||
end
|
||||
|
||||
def test_logger
|
||||
@app.level = Logger::WARN
|
||||
@app.set_log(@filename)
|
||||
begin
|
||||
assert_equal(Logger::WARN, @app.logger.level)
|
||||
ensure
|
||||
@app.logger.close
|
||||
end
|
||||
@app.logger = logger = Logger.new(STDOUT)
|
||||
assert_equal(logger, @app.logger)
|
||||
assert_equal(Logger::WARN, @app.logger.level)
|
||||
@app.log = @filename
|
||||
begin
|
||||
assert(logger != @app.logger)
|
||||
assert_equal(Logger::WARN, @app.logger.level)
|
||||
ensure
|
||||
@app.logger.close
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in a new issue