Skip to content

Commit d4ab9fc

Browse files
Unify log-level helper methods behavior.
1 parent 2ed6852 commit d4ab9fc

File tree

4 files changed

+54
-19
lines changed

4 files changed

+54
-19
lines changed

.ruby-version

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
2.7.1

lib/logdna.rb

Lines changed: 11 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,7 @@ class Ruby < ::Logger
1919
attr_accessor :app, :env, :meta
2020

2121
def initialize(key, opts = {})
22-
super(nil, nil, nil)
2322
@app = opts[:app] || "default"
24-
@log_level = opts[:level] || "INFO"
2523
@env = opts[:env]
2624
@meta = opts[:meta]
2725
@internal_logger = Logger.new($stdout)
@@ -43,28 +41,25 @@ def initialize(key, opts = {})
4341
request.basic_auth("username", key)
4442
request[:'user-agent'] = opts[:'user-agent'] || "ruby/#{LogDNA::VERSION}"
4543
@client = Logdna::Client.new(request, uri, opts)
44+
45+
super(nil, nil, nil, level: opts[:level] || "INFO")
4646
end
4747

4848
def default_opts
4949
{
5050
app: @app,
51-
level: @log_level,
51+
level: level,
5252
env: @env,
5353
meta: @meta,
5454
}
5555
end
5656

57-
def level
58-
@log_level
59-
end
60-
6157
def level=(value)
62-
if value.is_a? Numeric
63-
@log_level = Resources::LOG_LEVELS[value]
64-
return
65-
end
58+
return super(value) if value.is_a?(Integer)
6659

67-
@log_level = value
60+
return super(Resources::TRACE) if value.to_s.downcase == 'trace'
61+
62+
super
6863
end
6964

7065
def log(message = nil, opts = {})
@@ -89,17 +84,15 @@ def log(message = nil, opts = {})
8984
level: lvl
9085
), &block)
9186
end
87+
end
9288

93-
define_method "#{name}?" do
94-
return Resources::LOG_LEVELS[self.level] == lvl if level.is_a? Numeric
95-
96-
self.level == lvl
97-
end
89+
def trace?
90+
level <= Resources::TRACE
9891
end
9992

10093
def clear
10194
@app = "default"
102-
@log_level = "INFO"
95+
level = Resources::LOG_LEVELS[1]
10396
@env = nil
10497
@meta = nil
10598
end

lib/logdna/resources.rb

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
# frozen_string_literal: true
2-
2+
require 'logger'
33
module Resources
4+
TRACE = Logger::Severity::UNKNOWN
45
LOG_LEVELS = %w[DEBUG INFO WARN ERROR FATAL TRACE].freeze
6+
57
DEFAULT_REQUEST_HEADER = { "Content-Type" => "application/json; charset=UTF-8" }.freeze
68
DEFAULT_REQUEST_TIMEOUT = 180_000
79
MS_IN_A_DAY = 86_400_000

test/tests.rb

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,4 +80,43 @@ def test_all
8080
log_level_test("debug", 2003, "DEBUG")
8181
retry_test("fatal", 2004, "FATAL")
8282
end
83+
84+
def test_log_level_helper_methods
85+
debug_level_test
86+
warn_level_test
87+
trace_level_test
88+
end
89+
90+
def debug_level_test
91+
logger = Logdna::Ruby.new("pp", level: "DEBUG")
92+
93+
assert_equal(logger.debug?, true, "#debug? for 'DEBUG' level should be true")
94+
assert_equal(logger.info?, true, "#info? for 'DEBUG' level should be true")
95+
assert_equal(logger.warn?, true, "#warn? for 'DEBUG' level should be true")
96+
assert_equal(logger.error?, true, "#error? for 'DEBUG' level should be true")
97+
assert_equal(logger.fatal?, true, "#fatal? for 'DEBUG' level should be true")
98+
assert_equal(logger.trace?, true, "#trace? for 'DEBUG' level should be true")
99+
end
100+
101+
def warn_level_test
102+
logger = Logdna::Ruby.new("pp", level: "WARN")
103+
104+
assert_equal(logger.debug?, false, "#debug? for 'WARN' level should be false")
105+
assert_equal(logger.info?, false, "#info? for 'WARN' level should be false")
106+
assert_equal(logger.warn?, true, "#warn? for 'WARN' level should be true")
107+
assert_equal(logger.error?, true, "#error? for 'WARN' level should be true")
108+
assert_equal(logger.fatal?, true, "#fatal? for 'WARN' level should be true")
109+
assert_equal(logger.trace?, true, "#trace? for 'WARN' level should be true")
110+
end
111+
112+
def trace_level_test
113+
logger = Logdna::Ruby.new("pp", level: "TRACE")
114+
115+
assert_equal(logger.debug?, false, "#debug? for 'TRACE' level should be false")
116+
assert_equal(logger.info?, false, "#info? for 'TRACE' level should be false")
117+
assert_equal(logger.warn?, false, "#warn? for 'TRACE' level should be false")
118+
assert_equal(logger.error?, false, "#error? for 'TRACE' level should be false")
119+
assert_equal(logger.fatal?, false, "#fatal? for 'TRACE' level should be false")
120+
assert_equal(logger.trace?, true, "#trace? for 'TRACE' level should be true")
121+
end
83122
end

0 commit comments

Comments
 (0)