Использование библиотеки регистратора в Ruby – простой способ отслеживать, когда что-то пошло не так с вашим кодом. Когда что-то пойдет не так, подробный отчет о том, что именно привело к ошибке, может сэкономить вам часы на поиск ошибки. По мере того, как ваши программы становятся больше и сложнее, вы можете захотеть добавить способ записи сообщений журнала. Ruby поставляется с рядом полезных классов и библиотек, называемых стандартной библиотекой. Среди них библиотека регистратора, которая обеспечивает ведение журнала с приоритетом и ротацией.
Базовое использование
Поскольку библиотека регистратора поставляется с Ruby , устанавливать драгоценные камни или другие библиотеки не нужно. Чтобы начать использовать библиотеку регистратора, просто потребуйте logger и создайте новый объект Logger. Любые сообщения, записанные в объект Logger, будут записаны в файл журнала.
#!/Usr/bin/env ruby
require ‘logger ‘
log = Logger.new (‘ log.txt ‘)
log.debug “Файл журнала создан”
Приоритеты
Каждое сообщение журнала имеет приоритет. Эти приоритеты упрощают поиск в файлах журнала серьезных сообщений, а также позволяют объекту журнала автоматически отфильтровывать меньшие сообщения, когда они не нужны. Вы можете думать об этом как о своем списке дел на день. Некоторые вещи абсолютно необходимо сделать, некоторые действительно нужно сделать, а некоторые вещи можно отложить, пока у вас не будет времени сделать их.
В предыдущем Например, приоритетом был отладка , наименее важный из всех приоритетов («отложить до тех пор, пока у вас не будет времени» в вашем списке дел, если хотите). Приоритеты сообщений журнала, в порядке от наименее важного к наиболее важному, следующие: отладка, информация, предупреждение, ошибка и фатальный. Чтобы установить уровень сообщений, которые регистратор должен игнорировать, используйте атрибут level .
#!/Usr/bin/ env ruby
require ‘logger’
log = Logger.new (‘log.txt’)
log.level = Logger :: WARN
log.debug ” Это будет проигнорировано “
log.error” Это не будет проигнорировано “
Вы можете создать столько сообщений журнала, сколько хотите, и вы может регистрировать каждую крошечную мелочь, которую делает ваша программа, что делает приоритеты чрезвычайно полезными. Когда вы запускаете свою программу, вы можете оставить на уровне регистратора что-то вроде предупреждения или ошибки, чтобы уловить важные вещи. Затем, если что-то пойдет не так, вы можете снизить уровень регистратора (либо в исходном коде, либо с помощью переключателя командной строки), чтобы получить дополнительную информацию.
Ротация
Библиотека регистратора также поддерживает ротацию журналов. Ротация журналов не позволяет журналам становиться слишком большими и помогает в поиске в старых журналах. Когда ротация журнала включена и журнал достигает определенного размера или определенного возраста, библиотека регистратора переименует этот файл и создаст новый файл журнала.. Старые файлы журналов также можно настроить так, чтобы они удалялись (или «выпадали из ротации») по истечении определенного возраста.
Чтобы включить ротацию журналов, переходите ‘ежемесячно ‘,’ weekly ‘или’ daily ‘конструктору Logger. При желании вы можете передать конструктору максимальный размер файла и количество файлов для ротации.
#!/Usr/bin/env ruby
require ‘logger’
log = Logger.new (‘log.txt’, ‘daily’)
log.debug “Как только в журнале будет хотя бы один”
log.debug “дневной давности, он будет переименован и будет создан новый файл”
log.debug “log.txt.”