Stacked - Logger

김례원·2025년 7월 6일

Flutter

목록 보기
9/12
post-thumbnail

📋 Stacked의 Logger

Stacked는 앱의 상태나 흐름을 추적하고 디버깅하기 위해 간단한 로깅(Logging) 기능을 제공합니다.
이를 통해 디버그 중 로그를 체계적으로 남길 수 있고, 문제를 쉽게 파악할 수 있습니다.


✅ 어떻게 동작하나요?

Stacked는 내부적으로 LoggerService를 통해 로그를 기록합니다.
이 서비스는 setupLocator() 내에서 등록되고, 이후 어디서든 사용할 수 있습니다.


🔧 기본 설정 방법

1️⃣ 서비스 등록

먼저 Logger 인스턴스를 서비스 로케이터에 등록합니다:

import 'package:logger/logger.dart';

final logger = Logger();

void setupLocator() {
  locator.registerLazySingleton(() => logger);
}

또는 LoggerService 클래스를 만들고 커스터마이징하여 등록할 수도 있습니다.


2️⃣ ViewModel이나 Service에서 사용하기

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 클래스는 다양한 설정을 지원합니다. 예:

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 체크로 로그 차단 가능

💡 핵심 포인트

  • Stacked는 Logger를 통해 간편하고 강력한 로깅 시스템을 제공합니다.
  • 로깅은 개발 중 디버깅과 문제 추적에 매우 유용합니다.
  • 앱 전역에서 사용 가능하며, 커스터마이징도 쉽게 할 수 있습니다.

알아보면 좋을 내용

  • Firebase Crashlytics와 연동한 로그 수집, 로그 필터링 전략

출처 : Stacked 공식 문서 - Logger

profile
분야를 가리지 않는 개발자

0개의 댓글