Skip to content
dolph1n edited this page Feb 11, 2013 · 7 revisions

Logging - языковое расширение, которое предоставляет более удобные замены оператору trace в чистом ActionScript3. В отличие от классического функционала trace, расширенный trace предлагает набор простых и удобных трюков:

  • Форматирование сообщений;
  • Различные уровни сообщений;
  • Нумерация сообщений;
  • Использование вкладок для различных сообщений;
  • Использование отступов, акцентирующих внимание на отдельных сообщениях.

Для чистоты кода есть возможность воспольоватся Log-аннотацие.

Языковое расширение Logging доступно по умолчанию в каждом проекте CodeOrchestra.

##Базовый синтаксис

trace variable1 [, variable 2, …, variableN ]

Выводит значения всех перечисленных переменных в окно редактора Messages. Кликнув на сообщение в этом окне, Вы перейдёте на строку кода, который вызвал это сообщение.

var a : int = 42; 
var b : String = "Lorem ipsum"; 

trace a, b; //  -> 42, Lorem ipsum

trace values( variable1 [, variable2, …, variableN ] )

Более расширенный синтаксис, который позволяет вывести имена и значения всех перечисленных переменных.

var a : int = 42; 
var b : String = "Lorem ipsum"; 

trace values(a, b); //  -> a=42, b=Lorem ipsum

trace [ package, class, method, args ]

Выводит значения контекстно-зависимых переменных.

public function myClass(a : int, b : int, c : String) { 
  trace package; // -> имя пакета
  trace class;   // -> имя класса
  trace method;  // -> имя метода
  trace args;    // -> имена и значения аргументов
                 // в нашем случае, "args" эквивалентно "values (a, b, c)"
}

##Уровни сообщений

debug … / error … / fatal … / info … / trace… / warn …

В языке Logging присутствует 6 уровне сообщений. В зависимости от выбранного уровня сообщения, можно подчеркнуть разницу между предупреждением и информацией, между фатальной ошибкой и простой отладочной информацией. У сообщений trace, error и warn есть 3 различные иконки в окне Messages. Кликнув на иконку, Вы примените фильтр к сообщениям.

debug "Hello!"; 
error "Hello!"; 
fatal "Hello!"; 
info "Hello!"; 
trace "Hello!"; 
warn "Hello!";

##Нумерация сообщений

trace[ messageNumber ] …

Каждое выводимое сообщение может иметь численный префикс. Вы можете указать число или переменную счётчика в квадратных скобках перед сообщением.

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 { … }

Конструкция log-indent акцентирует внимание на нескольких сообщениях, делая отступ.

trace[0] "Hello!";
trace[1] "Hello!";
log-indent { 
  trace[2] "Hello!"; // Сообщения 2 и 3 появятся
  trace[3] "Hello!"; // со сдвигом вправо
} 
trace[4] "Hello!";

##Log аннотация

Log аннотация позволяет не засорять код лишними вызовами методов логирования. Для использования аннотации Вам необходимо выделить переменную или выражение и вызвать контекстное меню "Intentions"(alt+enter) (Add Log Annotation). После этого напротив строки появится иконка, при нажатии на которую откроется диалоговое окно, в котором можно указать следующее:

  • уровень сообщения (trace, debug, info, error, fatal);
  • дополнительное сообщение;
  • имя закладки;
  • отступ и номер.

Если в строке присутствует несколько Log аннотаций, то диалоговое окно будет общим для них.

Clone this wiki locally