Использование библиотеки логгеров: как писать логи в Ruby

Использование библиотеки регистратора в Рубин это простой способ отслеживать, когда что-то пошло не так с вашим кодом. Когда что-то идет не так, подробный отчет о том, что именно привело к ошибке, может сэкономить вам часы на обнаружение ошибки. Поскольку ваши программы становятся все больше и сложнее, вы можете захотеть добавить способ записи сообщений журнала. Ruby поставляется с рядом полезных классы и библиотеки, называемые стандартной библиотекой. Среди них библиотека логгеров, которая обеспечивает приоритетное и повернутое ведение журнала.

Основное использование

Поскольку библиотека logger поставляется с Ruby, нет необходимости устанавливать какие-либо гемы или другие библиотеки. Чтобы начать использовать библиотеку логгера, просто требовать 'logger' и создайте новый объект Logger. Любые сообщения, записанные в объект Logger, будут записаны в файл журнала.

#! / usr / bin / env ruby
требовать 'logger'
log = Logger.new ('log.txt')
log.debug "Файл журнала создан"

приоритеты

Каждое сообщение журнала имеет приоритет. Эти приоритеты упрощают поиск в файлах журналов серьезных сообщений, а также позволяют объекту журнала автоматически отфильтровывать меньшие сообщения, когда они не нужны. Вы можете думать об этом как о вашем списке дел на день. Некоторые вещи обязательно должны быть выполнены, некоторые действительно должны быть выполнены, а некоторые могут быть отложены до тех пор, пока вы не успеете это сделать.

instagram viewer

В предыдущем примере приоритет был отлаживатьнаименее важный из всех приоритетов («отложите, пока у вас не будет времени» в вашем списке дел, если хотите). Приоритеты сообщений журнала в порядке от наименьшего к наиболее важному: отладка, информация, предупреждение, ошибкаи смертельным исходом. Чтобы установить уровень сообщений, которые регистратор должен игнорировать, используйте уровень атрибут.

#! / usr / bin / env ruby
требовать 'logger'
log = Logger.new ('log.txt')
log.level = Logger:: WARN
log.debug "Это будет игнорироваться"
log.error "Это не будет проигнорировано"

Вы можете создать столько сообщений в журнале, сколько захотите, и вы можете регистрировать каждую мелочь, которую делает ваша программа, что делает приоритеты чрезвычайно полезными. Когда вы запускаете свою программу, вы можете оставить на уровне логгера что-то вроде предупреждения или ошибки, чтобы поймать важные вещи. Затем, когда что-то пойдет не так, вы можете понизить уровень регистратора (либо в исходном коде, либо с помощью переключателя командной строки), чтобы получить больше информации.

вращение

Библиотека журнала также поддерживает ротацию журналов. Ротация журналов не позволяет журналам становиться слишком большими и помогает в поиске по старым журналам. Когда ротация журнала включена и журнал достигает определенного размера или определенного возраста, библиотека регистратора переименует этот файл и создаст новый файл журнала. Старые файлы журналов также можно настроить для удаления (или «выпадения из ротации») после определенного возраста.

Чтобы включить ротацию журналов, передайте «ежемесячно», «еженедельно» или «ежедневно» конструктору Logger. При желании вы можете передать конструктору максимальный размер файла и количество файлов, которые будут находиться в очереди.

#! / usr / bin / env ruby
требовать 'logger'
log = Logger.new ('log.txt', 'daily')
log.debug "Когда журнал становится хотя бы одним"
log.debug "день старый, он будет переименован и"
log.debug "Будет создан новый файл log.txt."
instagram story viewer