Como alterar a cor do log no esp32

{getToc} $title={Índice}

Introdução

O presente artigo tem como objetivo apresentar uma ferramenta bem útil para o desenvolvimento de projetos, ajudando na depuração com a análise de logs, e tem como fundamento mostrar  como alterar a cor do log no esp32.

ANSI terminal

O padrão para ANSI é utilizado para controlar recursos do terminal, tais como cor, localização do cursor, estilo de fonte, etc. Para alterar a cor do log no esp32 o terminal deve ter suporte a esse padrão, certifique-se que o terminal utilizado tem esse suporte.

Por padrão a idf já vem com a opção ANSI habilitada, caso deseje conferir, o diretório de configuração do log de saída está presente em "Compontent config -> log output".

Para abrir a interface de configuração do esp basta utilizar o comando "make menuconfig" ou "idf.py menuconfig" no diretório do projeto.

cor do log esp32 - menuconfig
cor do log esp32 - menuconfig

Alterar a cor do log no Esp32

Para customizar a cor do log no esp32 vamos utilizar um exemplo com macros em definições, tomando como base as configurações presentes no arquivo esp_log.h e na tabela de cores do padrão ANSI. 

Observação: Para os exemplos foi utilizado o terminal terminator, cada terminal pode ter variação no tom da cor.

 

Cores predefinidas 

O primeiro exemplo utilizara o arquivo esp_log.h e suas definições de cores fixas.
  • Código:
cor do log no esp32 - exemplo 1
cor do log no esp32 - exemplo 1

  • Saída obtida:
cor do log no esp32 - saída log
cor do log no esp32 - saída log
  • Considerações:
  1. Se manteve o atributo de ESP_LOG_INFO, note que no inicio do log é apresentado a letra I em verde.
  2. Em LOG_COLOR deve ser passado como parâmetro a cor desejada, porem nesse exemplo utilizamos definições da própria idf.

Cores customizadas

Nesse exemplo para alterar a cor do log no esp32 vamos utilizar a tabela ANSI, ao invés de utilizar definições da idf.
  • Tabela:
tabela ansi
tabela ansi
  • Código:
cor do log no esp32 - exemplo 2
cor do log no esp32 - exemplo 2

  • Saída obtida:
cor do log no esp32 - saida log customizado
cor do log no esp32 - saída log customizado
  • Considerações:
  1. Se manteve o atributo de ESP_LOG_INFO, note que no início do log é apresentado a letra em verde.
  2. A definição do número da cor deve ser uma string.
  3. Em LOG_COLOR deve ser passado a definição criada.

Conclusão

A utilização de diferentes cores no log facilita o rastreio de forma visual no código, além de deixar o projeto mais organizado e customizado. Vale lembrar que por padrão a idf possui funções como ESP_LOGW ou ESP_LOGE que alteram a cor do log também, porem não são recomendadas para logs informativos, e sim para logs de aviso e erro.

Abaixo um exemplo de como essa boa prática ajuda na visualização dos logs de saída. Ao lado esquerdo todos os logs foram feitos utilizando o ESP_LOGI, já a direita foram criados três cores para cenários distintos, Wi-Fi, sensores e bluetooth.
 
cor do log no esp32 - comparativo
cor do log no esp32 - comparativo

Outra vantagem ao criar sua macro customizada, é habilita-la ou não, como, por exemplo, criar uma configuração no kconfig do projeto para habilitar ou não os logs de determinada classe utilizando #ifdef.

Referências 

Bruno Lima

Engenheiro de computação atuando em desenvolvimento de sistemas embarcados (Firmware) com microcontroladores e processadores (Linux Embarcado). Contribuidor de projetos públicos e fóruns de c/c++. linkedin github

Postar um comentário

Deixe seu comentário ou sua sugestão!

Postagem Anterior Próxima Postagem

Formulário de contato