module Neovim::Logging
Mixed into classes for unified logging helper methods.
@api private
Constants
- TIMESTAMP_FORMAT
Public Class Methods
included(base)
click to toggle source
# File lib/neovim/logging.rb, line 40 def self.included(base) base.send(:include, Helpers) end
logger(env=ENV)
click to toggle source
Return the value of @logger, or construct it from the environment. $NVIM_RUBY_LOG_FILE specifies a file to log to (default STDERR
), while $NVIM_RUBY_LOG_LEVEL specifies the level (default WARN
)
# File lib/neovim/logging.rb, line 13 def self.logger(env=ENV) return @logger if instance_variable_defined?(:@logger) env_file, env_level = env.values_at("NVIM_RUBY_LOG_FILE", "NVIM_RUBY_LOG_LEVEL") @logger = Logger.new(env_file || STDERR) if /\S+/.match?(env_level) begin @logger.level = Integer(env_level) rescue ArgumentError @logger.level = Logger.const_get(env_level.upcase) end else @logger.level = Logger::WARN end @logger.formatter = json_formatter @logger end
logger=(logger)
click to toggle source
# File lib/neovim/logging.rb, line 35 def self.logger=(logger) logger.formatter = json_formatter @logger = logger end
Private Class Methods
json_formatter()
click to toggle source
# File lib/neovim/logging.rb, line 44 def self.json_formatter lambda do |level, time, _, fields| require "multi_json" MultiJson.encode( { _level: level, _time: time.strftime(TIMESTAMP_FORMAT) }.merge!(fields) ) << "\n" end end