diff --git a/lib/solargraph/logging.rb b/lib/solargraph/logging.rb index 8f3edaba2..707a13936 100644 --- a/lib/solargraph/logging.rb +++ b/lib/solargraph/logging.rb @@ -29,9 +29,26 @@ module Logging 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 + :warn + end + # @return [Logger] def logger - @@logger + 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