Класс 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) Параметры:
|
warning(_:) | Запись сообщения в журнал. В базу данных записываются предупреждения,
в которых содержится информация о том, что пользователю/разработчику
следует обратить внимание на результат работы приложения. Уровень
логирования соответствует значению FMPLog.Level.warning.
Если текущий уровень логирования больше, то сообщение не обрабатывается.
func warning(_ message: String) Параметры:
|
error(_:) | Запись сообщения в журнал. В базу данных записывается ошибка,
после которой приложение может работать, но результаты могут быть
неожиданными. Уровень логирования соответствует значению FMPLog.Level.error.
Если текущий уровень логирования больше, то сообщение не обрабатывается.
func error(_ message: String) Параметры:
|
getSchedule(completion:) | Получение расписания отправки логов на сервер.
func getSchedule(completion: @escaping FMPLogScheduleHandler) Параметры:
|
sync(withClean:completion:) | Синхронизация логов с сервером. Отправляет логи с мобильного
устройства на сервер.
func sync(withClean: Bool = true, completion: @escaping FMPRequestResponseHandler) Параметры:
|
get(from:to:) | Получение логов из базы данных за указанный период. Запрашивает
логи из базы данных за указанный период. Если не указывать границу(ы)
периода, то вернутся все записи из базы данных, начиная с первой
и/или заканчивая последней. Возвращает список записей из базы
данных для хранения логов.
func get(from fromDate: Date? = nil, to toDate: Date? = nil) -> [FMPLog.Entry] Параметры:
|
clear(from:to:) | Очищение логов в базе данных за указанный период. Удаляет записи
логов из базы данных за указанный период. Если не указывать границу(ы)
периода, то удалятся все записи из базы данных, начиная с первой
и/или заканчивая последней.
func clear(from fromDate: Date? = nil, to toDate: Date? = nil) Параметры:
|
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()
См. также: