Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 11 additions & 18 deletions lib/logdna.rb
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,7 @@ class Ruby < ::Logger
attr_accessor :app, :env, :meta

def initialize(key, opts = {})
super(nil, nil, nil)
@app = opts[:app] || "default"
@log_level = opts[:level] || "INFO"
@env = opts[:env]
@meta = opts[:meta]
@internal_logger = Logger.new($stdout)
Expand All @@ -43,28 +41,25 @@ def initialize(key, opts = {})
request.basic_auth("username", key)
request[:'user-agent'] = opts[:'user-agent'] || "ruby/#{LogDNA::VERSION}"
@client = Logdna::Client.new(request, uri, opts)

super(nil, nil, nil, level: opts[:level] || "INFO")
end

def default_opts
{
app: @app,
level: @log_level,
level: level,
env: @env,
meta: @meta,
}
end

def level
@log_level
end

def level=(value)
if value.is_a? Numeric
@log_level = Resources::LOG_LEVELS[value]
return
end
return super(value) if value.is_a?(Integer)

@log_level = value
return super(Resources::TRACE) if value.to_s.downcase == 'trace'

super
end

def log(message = nil, opts = {})
Expand All @@ -89,17 +84,15 @@ def log(message = nil, opts = {})
level: lvl
), &block)
end
end

define_method "#{name}?" do
return Resources::LOG_LEVELS[self.level] == lvl if level.is_a? Numeric

self.level == lvl
end
def trace?
level <= Resources::TRACE
end

def clear
@app = "default"
@log_level = "INFO"
level = Resources::LOG_LEVELS[1]
@env = nil
@meta = nil
end
Expand Down
4 changes: 3 additions & 1 deletion lib/logdna/resources.rb
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
# frozen_string_literal: true

require 'logger'
module Resources
TRACE = Logger::Severity::UNKNOWN
LOG_LEVELS = %w[DEBUG INFO WARN ERROR FATAL TRACE].freeze

DEFAULT_REQUEST_HEADER = { "Content-Type" => "application/json; charset=UTF-8" }.freeze
DEFAULT_REQUEST_TIMEOUT = 180_000
MS_IN_A_DAY = 86_400_000
Expand Down
39 changes: 39 additions & 0 deletions test/tests.rb
Original file line number Diff line number Diff line change
Expand Up @@ -80,4 +80,43 @@ def test_all
log_level_test("debug", 2003, "DEBUG")
retry_test("fatal", 2004, "FATAL")
end

def test_log_level_helper_methods
debug_level_test
warn_level_test
trace_level_test
end

def debug_level_test
logger = Logdna::Ruby.new("pp", level: "DEBUG")

assert_equal(logger.debug?, true, "#debug? for 'DEBUG' level should be true")
assert_equal(logger.info?, true, "#info? for 'DEBUG' level should be true")
assert_equal(logger.warn?, true, "#warn? for 'DEBUG' level should be true")
assert_equal(logger.error?, true, "#error? for 'DEBUG' level should be true")
assert_equal(logger.fatal?, true, "#fatal? for 'DEBUG' level should be true")
assert_equal(logger.trace?, true, "#trace? for 'DEBUG' level should be true")
end

def warn_level_test
logger = Logdna::Ruby.new("pp", level: "WARN")

assert_equal(logger.debug?, false, "#debug? for 'WARN' level should be false")
assert_equal(logger.info?, false, "#info? for 'WARN' level should be false")
assert_equal(logger.warn?, true, "#warn? for 'WARN' level should be true")
assert_equal(logger.error?, true, "#error? for 'WARN' level should be true")
assert_equal(logger.fatal?, true, "#fatal? for 'WARN' level should be true")
assert_equal(logger.trace?, true, "#trace? for 'WARN' level should be true")
end

def trace_level_test
logger = Logdna::Ruby.new("pp", level: "TRACE")

assert_equal(logger.debug?, false, "#debug? for 'TRACE' level should be false")
assert_equal(logger.info?, false, "#info? for 'TRACE' level should be false")
assert_equal(logger.warn?, false, "#warn? for 'TRACE' level should be false")
assert_equal(logger.error?, false, "#error? for 'TRACE' level should be false")
assert_equal(logger.fatal?, false, "#fatal? for 'TRACE' level should be false")
assert_equal(logger.trace?, true, "#trace? for 'TRACE' level should be true")
end
end