13.1 로깅과 추적(Logging and Trace)
13.1 로깅과 추적(Logging and Trace)
Haxe는 개발자에게 강력한 로깅/추적 시스템을 제공합니다. 함수 안에서 trace를 호출하기만 하면 됩니다:
trace("Hello world!");
대부분의 Haxe 타깃에서 trace는 stdout으로 출력됩니다. JavaScript는 console.log를 사용합니다. 각 추적은 추적이 발생한 파일명과 줄 번호 정보와 함께 표시됩니다:
Test.hx:11: Hello world!
기본 위치 정보 없이 추적하려면 haxe.Log.trace(msg, null)을 사용할 수 있습니다.
커스텀 추적(Custom trace)
Log.trace 메서드를 바꾸면 모든 추적 호출이 리다이렉트되는 커스텀 출력을 만들 수 있습니다:
class Main {
static function main() {
haxe.Log.trace = function(v:Dynamic, ?infos:haxe.PosInfos) {
// 커스텀 추적 함수는 여기
}
trace("hello", "warning", 123);
}
}
v 인자는 추적 호출의 첫 번째 인자입니다. String이나 그 외 아무 값이 될 수 있습니다. 선택적 infos 인자는 추가 위치 인자를 담고 있으며 아래에서 다룹니다.
infos.customParams 배열은 원래 추적에 전달된 모든 추가 인자를 담고 있습니다. 추가 인자가 전달되지 않으면 null이 됩니다.
예시를 들면, 앞의 예제는 다음을 호출하는 것처럼 컴파일됩니다:
haxe.Log.trace("hello", {
fileName : "Test.hx",
lineNumber : 6,
className : "Test",
methodName : "main",
customParams : ["warning",123]
});
추적 제거(Removing traces)
--no-traces 인자로 프로젝트를 컴파일하면 모든 추적 정보를 간단히 제거할 수 있습니다. 이러면 프로그램에 존재하지 않는 것처럼 모든 trace 호출이 제거됩니다.