From 87c7e4f6b8d55b241742d0430767036f2864f3c5 Mon Sep 17 00:00:00 2001 From: Vince Broz Date: Fri, 18 Apr 2025 10:06:04 -0400 Subject: [PATCH 1/5] Allow log level to be overridden per file Useful for debug-level logging being turned on selectively at dev time --- lib/solargraph/logging.rb | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/lib/solargraph/logging.rb b/lib/solargraph/logging.rb index 4dce90f77..e3173e78c 100644 --- a/lib/solargraph/logging.rb +++ b/lib/solargraph/logging.rb @@ -16,12 +16,29 @@ module Logging @@logger.formatter = proc do |severity, datetime, progname, msg| "[#{severity}] #{msg}\n" end + @@dev_null_logger = Logger.new('/dev/null') + module_function + # override this in your class to temporarily set a custom + # filtering log level for the class (e.g., suppress any debug + # message by setting it to :info even if it is set elsewhere, or + # show existing debug messages by setting to :debug). @return + # [Symbol] + def log_level + @@logger.level + end + # @return [Logger] def logger - @@logger + @logger ||= if log_level == @@logger.level + @@logger + else + logger = Logger.new(STDERR, log_level) + logger.formatter = @@logger.formatter + logger + end end end end From 67dab545260166f904d643f033b92ff40ab2f8db Mon Sep 17 00:00:00 2001 From: Vince Broz Date: Sun, 20 Apr 2025 11:17:45 -0400 Subject: [PATCH 2/5] Fix numeric vs symbol logic --- lib/solargraph/logging.rb | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/solargraph/logging.rb b/lib/solargraph/logging.rb index e3173e78c..9640be39a 100644 --- a/lib/solargraph/logging.rb +++ b/lib/solargraph/logging.rb @@ -27,15 +27,16 @@ module Logging # show existing debug messages by setting to :debug). @return # [Symbol] def log_level - @@logger.level + :warn end # @return [Logger] def logger - @logger ||= if log_level == @@logger.level + @logger ||= if LOG_LEVELS[log_level.to_s] == @@logger.level @@logger else - logger = Logger.new(STDERR, log_level) + new_log_level = LOG_LEVELS[log_level.to_s] + logger = Logger.new(STDERR, level: new_log_level) logger.formatter = @@logger.formatter logger end From eb49ddbf1279a9be25c98c062491c5d78d6bfa1c Mon Sep 17 00:00:00 2001 From: Vince Broz Date: Mon, 21 Apr 2025 07:20:07 -0400 Subject: [PATCH 3/5] Avoid marshaling issues --- lib/solargraph/logging.rb | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/lib/solargraph/logging.rb b/lib/solargraph/logging.rb index 9640be39a..7c7531aea 100644 --- a/lib/solargraph/logging.rb +++ b/lib/solargraph/logging.rb @@ -32,14 +32,14 @@ def log_level # @return [Logger] def logger - @logger ||= if LOG_LEVELS[log_level.to_s] == @@logger.level - @@logger - else - new_log_level = LOG_LEVELS[log_level.to_s] - logger = Logger.new(STDERR, level: new_log_level) - logger.formatter = @@logger.formatter - logger - end + if LOG_LEVELS[log_level.to_s] == DEFAULT_LOG_LEVEL + @@logger + else + new_log_level = LOG_LEVELS[log_level.to_s] + logger = Logger.new(STDERR, level: new_log_level) + logger.formatter = @@logger.formatter + logger + end end end end From 5afc7a31c04f4d93704dc237db3d6cd5cc18726c Mon Sep 17 00:00:00 2001 From: Vince Broz Date: Thu, 10 Jul 2025 16:03:31 -0400 Subject: [PATCH 4/5] Drop unneeded code --- lib/solargraph/logging.rb | 2 -- 1 file changed, 2 deletions(-) diff --git a/lib/solargraph/logging.rb b/lib/solargraph/logging.rb index 8ff297077..a0dbff3bb 100644 --- a/lib/solargraph/logging.rb +++ b/lib/solargraph/logging.rb @@ -17,8 +17,6 @@ module Logging @@logger.formatter = proc do |severity, datetime, progname, msg| "[#{severity}] #{msg}\n" end - @@dev_null_logger = Logger.new('/dev/null') - module_function From 404e686fb331835dfd212d4407f62d77a1578269 Mon Sep 17 00:00:00 2001 From: Vince Broz Date: Thu, 10 Jul 2025 16:21:18 -0400 Subject: [PATCH 5/5] Fix return tag --- lib/solargraph/logging.rb | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/solargraph/logging.rb b/lib/solargraph/logging.rb index a0dbff3bb..35473f6df 100644 --- a/lib/solargraph/logging.rb +++ b/lib/solargraph/logging.rb @@ -23,8 +23,9 @@ module Logging # override this in your class to temporarily set a custom # filtering log level for the class (e.g., suppress any debug # message by setting it to :info even if it is set elsewhere, or - # show existing debug messages by setting to :debug). @return - # [Symbol] + # show existing debug messages by setting to :debug). + # + # @return [Symbol] def log_level :warn end