1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
|
require File.expand_path('../../setup', __FILE__)
module TestLogging
module TestLayouts
class TestColorPattern < Test::Unit::TestCase
include LoggingTestCase
CS = ::Logging::ColorScheme
def setup
super
::Logging.color_scheme :levels, :levels => {
:debug => :blue, :info => :green, :warn => :yellow, :error => :red, :fatal => :cyan
}
::Logging.color_scheme :lines, :lines => {
:debug => :blue, :info => :green, :warn => :yellow, :error => :red, :fatal => :cyan
}, :date => :blue, :logger => :cyan
::Logging.color_scheme :tokens, :date => :blue, :logger => :green, :message => :magenta
@levels = Logging::LEVELS
end
def test_level_coloring
layout = Logging.layouts.pattern(:color_scheme => :levels)
event = Logging::LogEvent.new('ArrayLogger', @levels['info'], 'log message', false)
rgxp = Regexp.new(Regexp.escape("#{CS::GREEN}INFO #{CS::RESET}"))
assert_match rgxp, layout.format(event)
event.level = @levels['debug']
rgxp = Regexp.new(Regexp.escape("#{CS::BLUE}DEBUG#{CS::RESET}"))
assert_match rgxp, layout.format(event)
event.level = @levels['error']
rgxp = Regexp.new(Regexp.escape("#{CS::RED}ERROR#{CS::RESET}"))
assert_match rgxp, layout.format(event)
end
def test_multiple_level_coloring
layout = Logging.layouts.pattern(:pattern => '%.1l, %5l -- %c: %m\n', :color_scheme => :levels)
event = Logging::LogEvent.new('ArrayLogger', @levels['info'], 'log message', false)
rgxp = Regexp.new(Regexp.escape("#{CS::GREEN}I#{CS::RESET}, #{CS::GREEN} INFO#{CS::RESET}"))
assert_match rgxp, layout.format(event)
event.level = @levels['debug']
rgxp = Regexp.new(Regexp.escape("#{CS::BLUE}D#{CS::RESET}, #{CS::BLUE}DEBUG#{CS::RESET}"))
assert_match rgxp, layout.format(event)
event.level = @levels['error']
rgxp = Regexp.new(Regexp.escape("#{CS::RED}E#{CS::RESET}, #{CS::RED}ERROR#{CS::RESET}"))
assert_match rgxp, layout.format(event)
end
def test_line_coloring
layout = Logging.layouts.pattern(:color_scheme => :lines)
event = Logging::LogEvent.new('ArrayLogger', @levels['info'], 'log message', false)
rgxp = Regexp.new('^'+Regexp.escape(CS::GREEN)+'.*?'+Regexp.escape(CS::RESET)+'$', Regexp::MULTILINE)
assert_match rgxp, layout.format(event)
event.level = @levels['error']
rgxp = Regexp.new('^'+Regexp.escape(CS::RED)+'.*?'+Regexp.escape(CS::RESET)+'$', Regexp::MULTILINE)
assert_match rgxp, layout.format(event)
event.level = @levels['warn']
rgxp = Regexp.new('^'+Regexp.escape(CS::YELLOW)+'.*?'+Regexp.escape(CS::RESET)+'$', Regexp::MULTILINE)
assert_match rgxp, layout.format(event)
end
def test_token_coloring
layout = Logging.layouts.pattern(:color_scheme => :tokens)
event = Logging::LogEvent.new('ArrayLogger', @levels['info'], 'log message', false)
rgxp = Regexp.new(
'^\['+Regexp.escape(CS::BLUE)+'\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}'+Regexp.escape(CS::RESET)+
'\] INFO -- '+Regexp.escape(CS::GREEN)+'ArrayLogger'+Regexp.escape(CS::RESET)+
' : '+Regexp.escape(CS::MAGENTA)+'log message'+Regexp.escape(CS::RESET)
)
assert_match rgxp, layout.format(event)
end
end # TestColorPattern
end # TestLayouts
end # TestLogging
|