Пользовательский лог-файл 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.

Другие вопросы по тегам