class CliApplication::Log::Config

Attributes

log_section[R]
type[R]

Public Class Methods

new(config) click to toggle source

Конструктор. Вызывается при создании класса приложения. В Конструктор передается секция конфигурационного файла, описывающего правила логгирования приложения Форматы файла:

Логгирование отключено (не рекомендуется) cli:

log:
   type: none

Логгирование в файл cli:

log:
   type: file
   location: папка для храннения логов

Логгирование в базу данных cli:

log:
   type: database
   database: имя конфигурации базы данных
   table_name: имя таблицы. По умолчанию - st_cli_application_log
  1. Описание хранения логов в файлах

Если ключ location не указан, то в качестве базовой папки будет использована папка класса, с добавлением logs. Если папки нет - она будет создана. Имя файла лога - соответствует имени скрипта, с добавкой '/logs/' При запуске осуществляется проверка прав на указанные файлы. Если есть риск незапуска скрипта под другими пользователями - то будет исключение. Файл создается в два этапа. Первый - создается файл при запуске, с указанием даты старта В случае ошибки - она пишется в лог. В случае успешного завершения - запись об этом тоже пишется в лог

  1. Описание хранения логов в базе данных

# File lib/cli_application/log/config.rb, line 42
def initialize(config)
  @possible_keys = [:none, :file, :database]

  @log_section = config.cli.log
  @config = config
  check_section_exist
  check_section_type
end

Private Instance Methods

check_section_exist() click to toggle source
# File lib/cli_application/log/config.rb, line 62
def check_section_exist
  if @log_section.nil?
    raise I18n.t('error.config.log_section_missing', filename: @config.filename)
  end
end
check_section_type() click to toggle source
# File lib/cli_application/log/config.rb, line 55
def check_section_type
  @type = @log_section.type.downcase.to_sym rescue :unknown
  unless @possible_keys.include?(@type)
    raise I18n.t('error.config.log_section_type_wrong', filename: @config.filename, type: @type.to_s.inspect)
  end
end