Stacked는 앱의 상태나 흐름을 추적하고 디버깅하기 위해 간단한 로깅(Logging) 기능을 제공합니다.
이를 통해 디버그 중 로그를 체계적으로 남길 수 있고, 문제를 쉽게 파악할 수 있습니다.
Stacked는 내부적으로 LoggerService를 통해 로그를 기록합니다.
이 서비스는 setupLocator() 내에서 등록되고, 이후 어디서든 사용할 수 있습니다.
먼저 Logger 인스턴스를 서비스 로케이터에 등록합니다:
import 'package:logger/logger.dart';
final logger = Logger();
void setupLocator() {
locator.registerLazySingleton(() => logger);
}
또는
LoggerService클래스를 만들고 커스터마이징하여 등록할 수도 있습니다.
final _logger = locator<Logger>();
_logger.i('정보 로그입니다');
_logger.d('디버그 로그입니다');
_logger.w('경고 로그입니다');
_logger.e('에러 로그입니다');
| 메서드 | 설명 |
|---|---|
v() | verbose (자세한 정보) |
d() | debug (디버그 정보) |
i() | info (일반 정보) |
w() | warning (경고) |
e() | error (에러) |
wtf() | 심각한 에러 (What a Terrible Failure) |
Logger 클래스는 다양한 설정을 지원합니다. 예:
Logger(
printer: PrettyPrinter(
methodCount: 2,
errorMethodCount: 8,
lineLength: 120,
colors: true,
printEmojis: true,
printTime: false,
),
);
Logger(
level: kReleaseMode ? Level.nothing : Level.debug,
);
릴리즈 빌드에서는 로그 출력 안 되도록 설정 가능
| 항목 | 설명 |
|---|---|
Logger | 로그를 남기는 기본 클래스 |
locator.registerLazySingleton() | 앱 어디서든 사용 가능하게 등록 |
| 로그 레벨 | verbose, debug, info, warning, error, wtf |
| 커스터마이징 | PrettyPrinter 등으로 로그 스타일 지정 가능 |
| 릴리즈 환경 대응 | kReleaseMode 체크로 로그 차단 가능 |
Logger를 통해 간편하고 강력한 로깅 시스템을 제공합니다.