개발에 있어서 로그의 중요성은 강조하지 않을수 없습니다.
로그가 없는 개발은 유지보수와 협업에 큰 장애를 줄 수 있습니다.
작고 사용하기 쉽고 아름다운 로그를 인쇄하는 확장 가능한 로거가 있습니다.
Android용 로거에서 영감을 받아 만들어진 Flutter 로거를 소개합니다.
https://pub.dev/packages/logger
예시 코드
import 'package:logger/logger.dart';
var logger = Logger(
printer: PrettyPrinter(),
);
var loggerNoStack = Logger(
printer: PrettyPrinter(methodCount: 0),
);
void main() {
print(
'Run with either `dart example/main.dart` or `dart --enable-asserts example/main.dart`.');
demo();
}
void demo() {
logger.d('Log message with 2 methods');
loggerNoStack.i('Info message');
loggerNoStack.w('Just a warning!');
logger.e('Error! Something bad happened', 'Test Error');
loggerNoStack.v({'key': 5, 'value': 'something'});
Logger(printer: SimplePrinter(colors: true)).v('boom');
}
출력 결과
사용법
var logger = Logger();
logger.d("Logger is working!");
위와 같이 main화면에서 선언해주면,
하위 모든화면에서 바로 객체를 공유하며 사용이 가능합니다.
// methodCount를 설정하여 더 많은 method stack을 출력할수 있습니다.
var logger_3Stack = Logger(printer: PrettyPrinter(methodCount: 3),);
logger_3Stack.i('Info message');
logger_3Stack.w('Just a warning!');
위와같이 method 옵션으로 값을 주어 로그의 위치 stack을 간결하게 만들거나
추적하기 용이하게 만들수도 있습니다.
그외에 더 다양한 옵션들을 설정할수 있습니다.
var logger = Logger(
printer: PrettyPrinter(
methodCount: 2, // number of method calls to be displayed
errorMethodCount: 8, // number of method calls if stacktrace is provided
lineLength: 120, // width of the output
colors: true, // Colorful log messages
printEmojis: true, // Print an emoji for each log message
printTime: false // Should each log print contain a timestamp
),
);
로그 종류
로거는 v ,d , i , w, e, wtf (?)
총 6개 로그종류를 만들어두었네요.
logger.v("Verbose log");
logger.d("Debug log");
logger.i("Info log");
logger.w("Warning log");
logger.e("Error log");
logger.wtf("What a terrible failure log");
저같은 경우 전부 구분해서 사용하진 않고,
Error와 Debug를 많이 사용할것 같네요
특정 로그만 출력하기
Logger.level = Level.warning;
logger.w로 작성된 로그만 출력됩니다.
'Study > Flutter' 카테고리의 다른 글
[Flutter] FireAuth 로그인과 인증 (0) | 2022.08.04 |
---|---|
[Flutter] Firebase flutter 설정 (0) | 2022.08.03 |
[Flutter] QR 코드 생성, 스캔 (0) | 2022.07.29 |
[Flutter] 앱 권한 관리 permission_handler 사용법 (AOS / IOS) (0) | 2022.07.19 |
[Flutter] Permission 그룹 권한의 종류와 허용법 (AOS / IOS) (0) | 2022.07.19 |