Study/Flutter
[Flutter] 로그 도우미 logger 사용법
bangu4
2022. 8. 2. 17:51
개발에 있어서 로그의 중요성은 강조하지 않을수 없습니다.
로그가 없는 개발은 유지보수와 협업에 큰 장애를 줄 수 있습니다.
작고 사용하기 쉽고 아름다운 로그를 인쇄하는 확장 가능한 로거가 있습니다.
Android용 로거에서 영감을 받아 만들어진 Flutter 로거를 소개합니다.
https://pub.dev/packages/logger
logger | Dart Package
Small, easy to use and extensible logger which prints beautiful logs.
pub.dev
예시 코드
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로 작성된 로그만 출력됩니다.