|
| 1 | +require_relative '../helper' |
| 2 | + |
| 3 | +require 'fluent/log' |
| 4 | +require 'fluent/log/console_adapter' |
| 5 | + |
| 6 | +class ConsoleAdapterTest < Test::Unit::TestCase |
| 7 | + def setup |
| 8 | + @timestamp = Time.parse("2023-01-01 15:32:41 +0000") |
| 9 | + @timestamp_str = @timestamp.strftime("%Y-%m-%d %H:%M:%S %z") |
| 10 | + Timecop.freeze(@timestamp) |
| 11 | + |
| 12 | + @logdev = Fluent::Test::DummyLogDevice.new |
| 13 | + @logger = ServerEngine::DaemonLogger.new(@logdev) |
| 14 | + @fluent_log = Fluent::Log.new(@logger) |
| 15 | + @console_logger = Fluent::Log::ConsoleAdapter.wrap(@fluent_log) |
| 16 | + end |
| 17 | + |
| 18 | + def teardown |
| 19 | + Timecop.return |
| 20 | + end |
| 21 | + |
| 22 | + def test_expected_log_levels |
| 23 | + assert_equal({debug: 0, info: 1, warn: 2, error: 3, fatal: 4}, |
| 24 | + Console::Logger::LEVELS) |
| 25 | + end |
| 26 | + |
| 27 | + data(trace: [Fluent::Log::LEVEL_TRACE, :debug], |
| 28 | + debug: [Fluent::Log::LEVEL_DEBUG, :debug], |
| 29 | + info: [Fluent::Log::LEVEL_INFO, :info], |
| 30 | + warn: [Fluent::Log::LEVEL_WARN, :warn], |
| 31 | + error: [Fluent::Log::LEVEL_ERROR, :error], |
| 32 | + fatal: [Fluent::Log::LEVEL_FATAL, :fatal]) |
| 33 | + def test_reflect_log_level(data) |
| 34 | + level, expected = data |
| 35 | + @fluent_log.level = level |
| 36 | + console_logger = Fluent::Log::ConsoleAdapter.wrap(@fluent_log) |
| 37 | + assert_equal(Console::Logger::LEVELS[expected], |
| 38 | + console_logger.level) |
| 39 | + end |
| 40 | + |
| 41 | + data(debug: :debug, |
| 42 | + info: :info, |
| 43 | + warn: :warn, |
| 44 | + error: :error, |
| 45 | + fatal: :fatal) |
| 46 | + def test_string_subject(level) |
| 47 | + @console_logger.send(level, "subject") |
| 48 | + assert_equal(["#{@timestamp_str} [#{level}]: 0.0s: subject\n"], |
| 49 | + @logdev.logs) |
| 50 | + end |
| 51 | + |
| 52 | + data(debug: :debug, |
| 53 | + info: :info, |
| 54 | + warn: :warn, |
| 55 | + error: :error, |
| 56 | + fatal: :fatal) |
| 57 | + def test_args(level) |
| 58 | + @console_logger.send(level, "subject", 1, 2, 3) |
| 59 | + assert_equal([ |
| 60 | + "#{@timestamp_str} [#{level}]: 0.0s: subject\n" + |
| 61 | + " | 1\n" + |
| 62 | + " | 2\n" + |
| 63 | + " | 3\n" |
| 64 | + ], |
| 65 | + @logdev.logs) |
| 66 | + end |
| 67 | + |
| 68 | + data(debug: :debug, |
| 69 | + info: :info, |
| 70 | + warn: :warn, |
| 71 | + error: :error, |
| 72 | + fatal: :fatal) |
| 73 | + def test_options(level) |
| 74 | + @console_logger.send(level, "subject", kwarg1: "opt1", kwarg2: "opt2") |
| 75 | + assert_equal([ |
| 76 | + "#{@timestamp_str} [#{level}]: 0.0s: subject\n" + |
| 77 | + " | {\"kwarg1\":\"opt1\",\"kwarg2\":\"opt2\"}\n" |
| 78 | + ], |
| 79 | + @logdev.logs) |
| 80 | + end |
| 81 | + |
| 82 | + data(debug: :debug, |
| 83 | + info: :info, |
| 84 | + warn: :warn, |
| 85 | + error: :error, |
| 86 | + fatal: :fatal) |
| 87 | + def test_block(level) |
| 88 | + @console_logger.send(level, "subject") { "block message" } |
| 89 | + assert_equal([ |
| 90 | + "#{@timestamp_str} [#{level}]: 0.0s: subject\n" + |
| 91 | + " | block message\n" |
| 92 | + ], |
| 93 | + @logdev.logs) |
| 94 | + end |
| 95 | + |
| 96 | + data(debug: :debug, |
| 97 | + info: :info, |
| 98 | + warn: :warn, |
| 99 | + error: :error, |
| 100 | + fatal: :fatal) |
| 101 | + def test_multiple_entries(level) |
| 102 | + @console_logger.send(level, "subject1") |
| 103 | + @console_logger.send(level, "line2") |
| 104 | + assert_equal([ |
| 105 | + "#{@timestamp_str} [#{level}]: 0.0s: subject1\n", |
| 106 | + "#{@timestamp_str} [#{level}]: 0.0s: line2\n" |
| 107 | + ], |
| 108 | + @logdev.logs) |
| 109 | + end |
| 110 | +end |
0 commit comments