Photo by Dorelys Smits on Unsplash
Groveman: The best logging for Dart/Flutter applications 🐛
Baseada na biblioteca Timber(Android) este package de logging no Flutter é um destaque no quesito facilidade de uso.
Table of contents
Sabemos que nenhum desenvolvedor Flutter vive apenas de debugPrint(não em teoria) e que dentro deste universo de packages temos os tão amados packages de logging e cada um deles com suas peculiaridades.
De modo geral muitos destes packages vão além da função de ajudar no debug e mostrar logs de forma legível e organizada, chegam até ao ponto de ajudar em adicionar observabilidade e contexto em aplicativos já em produção. Desta vez vou apresentar o package Groveman.
Na voz do dev
Fiz três perguntas ao Kauê Martins, mantenedor e criador do package Groveman e ele dá um panorama de pôr qual razão o Groveman existe.
O Groveman basicamente é uma versão do Timber do ecossistema Android só que para Flutter, que visa melhorar o gerenciando dos logs de uma aplicação, cito como exemplo, a possibilidade de exibir determinados logs de acordo com o flavor do seu aplicativo.Groveman (Homem do bosque) é pra passar a ideia de realmente alguém está plantando uma árvore (Groveman.plantTree).Martins, Kauê; 2022.
Usando
Você pode começar adicionando as dependências do pubspec.yaml
ou chamando o cli flutter pub add groveman
. Depois disso só basta inicializar o logging.
Uma coisa bem legal aqui, é que você pode adicionar várias trees e cada uma delas desempenhar um papel diferente.
void main(){
Groveman.plantTree(DebugTree()); // Mostra logs somente em debug...
Podemos usar 5 níveis de logging : fatal, error, warning, info, debug.
Groveman.debug();
Groveman.info('info', tag: 'info');
Groveman.warning('error', tag: 'info',
extra: <String, Object>{
'name': 'Jungle',
'trees': 50,
}, );
Groveman.error('info', tag: 'info', error: Error());
Groveman.fatal('info', tag: 'info', stackTrace: StackTrace.current);
Segundo o readme.md : 'There are no Tree implementations installed by default because, second Timber, every time you log in production, a puppy dies.'
Estendendo
Também podemos usar outras Trees e enviar os logs para um serviço como o Sentry por exemplo, esses Trees adicionais são disponibilizadas em packages separados, temos o Groveman Sentry e o Groveman Crashlytics.
Caso em sua stack você use um outro serviço de logging como por exemplo o ElasticSearch ou Datadog você pode simplesmente implementar sua própria Tree e nela você decide o que é importante ou não.
Finalizando
O package Groveman encara e resolve bem os problemas comuns no desenvolvimento de apps Flutter com uma mensagem legal de consciência social. Não se esqueça, plante arvores. 🌳🌳🌳