Пользовательский лог-файл Padrino
Мне нужно создать собственный файл журнала в Padrino, который содержит всю информацию о регистрации в stdout, а также пользовательские сообщения журнала. Мне удалось создать специальный файл журнала, но файл stdout (development.log, production.log и т. Д.) Все еще создается с инструкциями регистрации в нем. Я попытался поместить эти строки в файл boot.rb, но ни одна из них, похоже, не работает:
Padrino::Logger::Config[:development][:stream] = :to_file
Padrino::Logger::Config[:development] = { :log_level => :debug, :stream => :to_file }
Padrino::Logger::Config[:development][:stream] = :null
Padrino::Logger::Config[:development] = { :log_level => :debug, :stream => :null}
Я посмотрел на команды разработки Padrino и документацию регистратора, но они не помогли.
В случае, если это поможет, это код, который генерирует пользовательский файл журнала. (Запускаю ли я этот код или нет, файл stdout продолжает создаваться):
log_path = File.join(custom_log_path, 'My Service')
FileUtils.mkdir_p log_path
log_file_path = File.join(log_path, "MyService_#{current_date_time_formatted}.log")
logger = File.open(log_file_path, "a+")
if defined?(PADRINO_ENV) && PADRINO_ENV == 'production'
$stdout.reopen(logger)
$stderr.reopen(logger)
end
Любая помощь очень ценится!
1 ответ
Вы должны быть в состоянии сделать это:
Padrino::Logger::Config[:development][:stream] = logger
# or
Padrino::Logger::Config[:production][:stream] = logger
после того как вы определили logger
, Если config[:stream]
не получает ключевое слово, Padrino::Logger
будет использовать все, что передается в качестве выходного потока.
Для получения дополнительной информации о регистраторе Padrino, ознакомьтесь с соответствующим кодом Padrino Core, особенно self.setup!
: https://github.com/padrino/padrino-framework/blob/master/padrino-core/lib/padrino-core/logger.rb.