FMPLog

Описание

Класс FMPLog предназначен для работы с логами.

class FMPLog

Свойства

Свойство Описание

level

Уровень логирования.
var level: FMPLog.Level { get set }
outputType Тип записи логов.
var outputType: FMPLog.OutputType { get set }
isEnabled Флаг, который определяет, включена ли запись логов в консоль и базу данных.
var isEnabled: Bool { get set }
isSecure Флаг, который определяет, скрываются ли в логах секьюрные данные.
var isSecure: Bool { get set }
database База данных для записи логов.
var database: FMPDatabase { get }

databaseLimit

Предельное количество записей лога в базе данных. При указании целого значения больше 0 устанавливается предел количества записей лога в базе данных. При превышении указанного предела, самые старые записи удаляются. Для снятия лимита нужно установить значение nil, либо значение меньше или равно 0.
var databaseLimit: Int32? { get set }

Методы

Метод Описание

debug(_:)

Запись сообщения в журнал. В базу данных записывается информация, полезная пользователю SDK (статистика, ключевые настройки, статус старта/остановки и т.д.). Уровень логирования соответствует значению FMPLog.Level.debug. Если текущий уровень логирования больше, то сообщение не обрабатывается.
func debug(_ message: String)

Параметры:

  • message. Текст сообщения.

warning(_:) Запись сообщения в журнал. В базу данных записываются предупреждения, в которых содержится информация о том, что пользователю/разработчику следует обратить внимание на результат работы приложения. Уровень логирования соответствует значению FMPLog.Level.warning. Если текущий уровень логирования больше, то сообщение не обрабатывается.
func warning(_ message: String)

Параметры:

  • message. Текст сообщения.

error(_:) Запись сообщения в журнал. В базу данных записывается ошибка, после которой приложение может работать, но результаты могут быть неожиданными. Уровень логирования соответствует значению FMPLog.Level.error. Если текущий уровень логирования больше, то сообщение не обрабатывается.
func error(_ message: String)

Параметры:

  • message. Текст сообщения.

getSchedule(completion:) Получение расписания отправки логов на сервер.
func getSchedule(completion: @escaping FMPLogScheduleHandler)

Параметры:

  • completion. Замыкающее выражение, содержащее результат выполнения метода.

sync(withClean:completion:) Синхронизация логов с сервером. Отправляет логи с мобильного устройства на сервер.
func sync(withClean: Bool = true, completion: @escaping FMPRequestResponseHandler)

Параметры:

  • withClean. Если true, то записи журнала удаляются из локальной базы данных после синхронизации;

  • completion. Замыкающее выражение, содержащее результат выполнения метода.

get(from:to:) Получение логов из базы данных за указанный период. Запрашивает логи из базы данных за указанный период. Если не указывать границу(ы) периода, то вернутся все записи из базы данных, начиная с первой и/или заканчивая последней. Возвращает список записей из базы данных для хранения логов.
func get(from fromDate: Date? = nil, to toDate: Date? = nil) -> [FMPLog.Entry]

Параметры:

  • fromDate. Дата и время начала периода;

  • toDate. Дата и время конца периода.

clear(from:to:) Очищение логов в базе данных за указанный период. Удаляет записи логов из базы данных за указанный период. Если не указывать границу(ы) периода, то удалятся все записи из базы данных, начиная с первой и/или заканчивая последней.
func clear(from fromDate: Date? = nil, to toDate: Date? = nil)

Параметры:

  • fromDate. Дата и время начала периода;

  • toDate. Дата и время конца периода.

getMeta() Получение метаинформации о базе данных с логами.
func getMeta() -> FMPLog.Meta?

Примеры

Смена уровня логирования:

// Построим экземпляр класса FMPLog. Подробнее в примерах к FMPLog.Builder.
let log: FMPLog = fmp.log.build()
  
// Сменим уровень логирования
log.level = .verbose

Смена типа записи логов:

// Построим экземпляр класса FMPLog. Подробнее в примерах к FMPLog.Builder.
let log: FMPLog = fmp.log.build()
  
// Сменим тип записи логов
log.outputType = .database

Включение/выключение логирования:

// Построим экземпляр класса FMPLog. Подробнее в примерах к FMPLog.Builder.
let log: FMPLog = fmp.log.build()
  
// Включим логирование
log.isEnabled = true
// Выключим логирование
log.isEnabled = false

Включение/выключение записи секьюрных данных:

// Построим экземпляр класса FMPLog. Подробнее в примерах к FMPLog.Builder.
let log: FMPLog = fmp.log.build()
  
// Включим запись секьюрных данных
log.isSecure = false
// Выключим запись секьюрных данных
log.isSecure = true

Установка/снятие ограничения по количестеву записей лога в базе данных:

// Построим экземпляр класса FMPLog. Подробнее в примерах к FMPLog.Builder.
let log: FMPLog = fmp.log.build()
  
// Установим предельное значение количества записей лога
log.databaseLimit = 1000
  
// Снимем ограничение по количеству записей
log.databaseLimit = nil // 1 вариант
log.databaseLimit = 0 // 2 вариант
log.databaseLimit = -1 // 3 вариант

Запись пользовательских логов:

// Построим экземпляр класса FMPLog. Подробнее в примерах к FMPLog.Builder.
let log: FMPLog = fmp.log.build()
  
// Запишем отладочную информацию
log.debug("debug")
  
// Запишем предупреждение
log.warning("warning")
  
// Запишем ошибку
log.error("error")

Получение расписания отправки логов, установленного на сервере:

// Построим экземпляр класса FMPLog. Подробнее в примерах к FMPLog.Builder.
let log: FMPLog = fmp.log.build()
  
// Получим расписание
log.getSchedule { (success, error, schedule) in
    if success {
        //  Выведем расписание
        print(schedule?.schedule)
    } else {
        // Выведем код и описание ошибки
        print(error?.code, error?.description)
    }
}

Отправка логов на сервер:

// Построим экземпляр класса FMPLog. Подробнее в примерах к FMPLog.Builder.
let log: FMPLog = fmp.log.build()
  
// Отправка логов на сервер
log.sync { (response) in
    if response.success {
        //  Выведем ответ сервера
        print(response.result)
    } else {
        // Выведем код и описание ошибки
        print(response.error?.code, response.error?.description)
    }
}

Получение логов из базы данных за указанный период:

// Построим экземпляр класса FMPLog. Подробнее в примерах к FMPLog.Builder.
let log: FMPLog = fmp.log.build()
  
let startDate: Date
let endDate: Date
 
// Получим список логов за выбранный период
let logs: [FMPLog.Entry] = log.get(from: startDate, to: endDate)

Удаление логов из базы данных за указанный период:

// Построим экземпляр класса FMPLog. Подробнее в примерах к FMPLog.Builder.
let log: FMPLog = fmp.log.build()
  
let startDate: Date
let endDate: Date
 
// Очистим логи за выбранный период
log.сlear(from: startDate, to: endDate)

Получение метаинформации о базе данных с логами:

// Построим экземпляр класса FMPLog. Подробнее в примерах к FMPLog.Builder.
let log: FMPLog = fmp.log.build()
 
// Получим метаинформацию о базе данных с логами
let meta: FMPLog.Meta? = log.getMeta()

См. также:

Фреймворк FMPWrapper | Классы