Если вы получаете это сообщение во время сохранения или компиляции сборки, просто закройте все файлы, а затем откройте любой файл для компиляции и сохранения.
Для меня причина в том, что я переименовал файл, и старый файл все еще был открыт.
Это старый вопрос, но поскольку он так высоко поднялся на google, я подумал, что было бы полезно исправить ответ. Фактически вы можете использовать метод Logging.init
. Вот как вы добавили бы уровень trace
журнала
require 'logging'
Logging.init %w(trace debug info warn error fatal)
Logging.logger.root.level = :trace
Logging.logger.root.add_appenders Logging.appenders.stdout
Logging.logger['hello'].trace 'TEST'
Это использует 2.0.0
жемчужины logging
.
Если вам понадобится куча настраиваемых материалов, возможно, стоит проверить log4r , что является гибкой библиотекой журналов, которая позволяет вам легко собирать интересные и полезные вещи.
Ваш собственный регистратор просто должен перезаписать метод Logger#format_severity
, что-то вроде этого:
class MyLogger < Logger
SEVS = %w(DEBUG INFO WARN ERROR FATAL VERBOSE TRAFFIC)
def format_severity(severity)
SEVS[severity] || 'ANY'
end
def verbose(progname = nil, &block)
add(5, nil, progname, &block)
end
end
Вы можете создать свой собственный регистратор, перегрузив класс Logger
Уровни журнала - это не что иное, как целочисленные константы, определенные в logger.rb
:
# Logging severity.
module Severity
DEBUG = 0
INFO = 1
WARN = 2
ERROR = 3
FATAL = 4
UNKNOWN = 5
end
Вы можете записывать сообщения с любым уровнем, который вам нравится, используя метод Logger#add
:
l.add 6, 'asd'
#=> A, [2010-02-17T16:25:47.763708 #14962] ANY -- : asd
Вы можете просто добавить к классу Logger:
require 'logger'
class Logger
def self.custom_level(tag)
SEV_LABEL << tag
idx = SEV_LABEL.size - 1
define_method(tag.downcase.gsub(/\W+/, '_').to_sym) do |progname, &block|
add(idx, nil, progname, &block)
end
end
# now add levels like this:
custom_level 'TRAFFIC'
custom_level 'ANOTHER-TAG'
end
# using it:
log = Logger.new($stdout)
log.traffic('testing')
log.another_tag('another message here.')
unfreeze
через stackoverflow.com/questions/35633367/… , затем Logger::SEV_LABEL.unfreeze
– Mark Harviston
10 August 2018 в 20:28