-
Notifications
You must be signed in to change notification settings - Fork 0
Logging (ru)
Logging - языковое расширение, которое предоставляет более удобные замены оператору trace в чистом ActionScript3.
В отличие от классического функционала trace, расширенный trace предлагает набор простых и удобных трюков:
- Форматирование сообщений;
- Различные уровни сообщений;
- Нумерация сообщений;
- Использование вкладок для различных сообщений;
- Использование отступов, акцентирующих внимание на отдельных сообщениях.
Для чистоты кода есть возможность воспольоватся Log-аннотацие.
Языковое расширение Logging доступно по умолчанию в каждом проекте CodeOrchestra.
##Базовый синтаксис
Выводит значения всех перечисленных переменных в окно редактора Messages. Кликнув на сообщение в этом окне, Вы перейдёте на строку кода, который вызвал это сообщение.
var a : int = 42;
var b : String = "Lorem ipsum";
trace a, b; // -> 42, Lorem ipsumБолее расширенный синтаксис, который позволяет вывести имена и значения всех перечисленных переменных.
var a : int = 42;
var b : String = "Lorem ipsum";
trace values(a, b); // -> a=42, b=Lorem ipsumВыводит значения контекстно-зависимых переменных.
public function myClass(a : int, b : int, c : String) {
trace package; // -> имя пакета
trace class; // -> имя класса
trace method; // -> имя метода
trace args; // -> имена и значения аргументов
// в нашем случае, "args" эквивалентно "values (a, b, c)"
}##Уровни сообщений
В языке Logging присутствует 6 уровне сообщений. В зависимости от выбранного уровня сообщения, можно подчеркнуть разницу между предупреждением и информацией, между фатальной ошибкой и простой отладочной информацией. У сообщений trace, error и warn есть 3 различные иконки в окне Messages. Кликнув на иконку, Вы примените фильтр к сообщениям.
debug "Hello!";
error "Hello!";
fatal "Hello!";
info "Hello!";
trace "Hello!";
warn "Hello!";##Нумерация сообщений
Каждое выводимое сообщение может иметь численный префикс. Вы можете указать число или переменную счётчика в квадратных скобках перед сообщением.
trace[0] "Hello!"; // -> [0] Hello!
trace[1] "Hello!"; // -> [1] Hello!
trace[2] "Hello!"; // -> [2] Hello!
trace[3] "Hello!"; // -> [3] Hello!##Вкладки и отступы
###log-scope( tabName ) { … }
Сообщения могут быть собраны в различных вкладках окна Messages. Любой код может быть обёрнут в конструкцию log-scope с указанием имени вкладки.
log-scope (myTab) {
var a : int = 42;
var b : String = "Lorem ipsum";
trace values(a, b); // это сообщение будет во вкладке myTab
}
trace values(a, b); // этого сообщения не будет во вкладке myTabКонструкция log-indent акцентирует внимание на нескольких сообщениях, делая отступ.
trace[0] "Hello!";
trace[1] "Hello!";
log-indent {
trace[2] "Hello!"; // Сообщения 2 и 3 появятся
trace[3] "Hello!"; // со сдвигом вправо
}
trace[4] "Hello!";Log аннотация позволяет не засорять код лишними вызовами методов логирования. Для использования аннотации Вам необходимо выделить переменную или выражение и вызвать контекстное меню "Intentions"(alt+enter) (Add Log Annotation). После этого напротив строки появится иконка, при нажатии на которую откроется диалоговое окно, в котором можно указать следующее:
- уровень сообщения (trace, debug, info, error, fatal);
- дополнительное сообщение;
- имя закладки;
- отступ и номер.
Если в строке присутствует несколько Log аннотаций, то диалоговое окно будет общим для них.