2016-09-19 2 views
0

Я хотел добавить префикс ко всем моим журналам. Я попробовал подкласс XCGLogger для переопределения функций logln(...) или debug(...).Как префикс всех моих журналов с помощью XCGLogger

Но я столкнулся с двумя трудностями при использовании этого

  1. Компилятор всегда дает мне ошибку (смотри рисунок).
  2. Я не знаю, как настроить данное сообщение журнала, поскольку параметр является закрытием.

enter image description here

Благодаря

+0

Пожалуйста, добавьте запрос функции здесь: https://github.com/DaveWoodCom/XCGLogger/issues, и я добавлю его. Это то, что я хотел добавить в любом случае, просто был в списке приоритетов. –

ответ

0

Ok я нашел. Нам необходимо определить class или struct, который соответствует LogFormatterProtocol и реализовать функцию format(logDetails: inout LogDetails, message: inout String) -> String для изменения входящего сообщения. Затем создать экземпляр этого класса или структуры и добавить его в массив Форматтеры назначения:

let consoleDest = ConsoleDestination(owner: myLogger, identifier: "") // myLogger is an instance of XCGLogger 
consoleDest.formatters = [MyFormatter()] // MyFormatter is a struct conforming to LogFormatterProtocol 
myLogger.add(destination: consoleDest) 
0

вопрос у вас есть в вашем коде выше, является то, что вы не быть ясно компилятору, какой из super.logln методов, которые вы вызываете. Поскольку существует несколько версий метода, с различными функциями, некоторые из которых имеют значения по умолчанию, вам необходимо явно указать достаточно параметров для компилятора, чтобы узнать, какую версию вы вызываете. Вот почему ваши сообщения об ошибках говорят «Неоднозначно ...»

Смежные вопросы