Clique em "Uncle Wheat" acima e selecione "Top/Star Public Account"
Produtos secos de bem-estar, entregues o mais rápido possível
Olá a todos, eu sou Trigo, a importância do sistema de log no processo de desenvolvimento e ajuste do sistema,
Todos devem saber que, especialmente depois que ocorre um problema no projeto, é muito doloroso que não haja log para ajudar a localizar o problema.
Como nem sempre podemos percorrer o depurador para depurar o programa, o log de execução do dispositivo é particularmente importante.
Normalmente temos estes requisitos para logs:
diferentes níveis de log (
Debug
,Warning
,Info,
Error
,Fatal
);A impressão de log deve ser
printf
tão fácil de usar quanto;Capacidade de definir o nível de log;
Pequena pegada;
Configurável, até mesmo o registro pode ser desabilitado;
Suporta realce de cores com base em diferentes níveis de log;
Você pode personalizar a configuração, timestamp;
Suporte RTOS;
As funções acima são relativamente básicas, mas em dispositivos embarcados, às vezes queremos salvar o log de execução do dispositivo, precisamos de algumas das seguintes funções;
Suporte a vários métodos de acesso, como terminal serial, salve no sistema de arquivos incorporado;
Suporte a linha de comando do shell para acessar através do terminal serial;
Nem todos esses requisitos serão atendidos.
Além das comumente usadas log4c
, log4cpp
aqui estão três bibliotecas de log de código aberto muito boas recomendadas para você, que são mais adequadas para uso em projetos de chip único. Do leve no início, ao rico em recursos na parte de trás, o último é muito poderoso, então seja paciente até o final.
rxi_log
endereço do projeto:https://github.com/rxi/log.c
Uma biblioteca de log simples implementada com base em C99, a saída específica é a seguinte;
uso específico
log.c
Você pode integrar o e no código-fonte log.h
em seu projeto.Se precisar imprimir o log, você pode chamar a seguinte API, conforme mostrado abaixo;
log_trace(const char *fmt, ...);
log_debug(const char *fmt, ...);
log_info(const char *fmt, ...);
log_warn(const char *fmt, ...);
log_error(const char *fmt, ...);
log_fatal(const char *fmt, ...);
Além dessas APIs, existem log_set_quiet
, log_set_lock
, LOG_USE_COLOR
etc. Consulte o projeto original para obter detalhes.
estaca
endereço do projeto:https://github.com/rdpoor/ulog
O uLog fornece um mecanismo de registro estruturado para microcontroladores incorporados ou qualquer sistema com recursos limitados. Ele herda alguns dos conceitos por trás do popular Log4c
e plataformas, mas com menor sobrecarga.Log4j
Algumas funcionalidades do uLog:
O uLog é fácil de integrar em quase qualquer ambiente, consiste em um cabeçalho e um arquivo de origem e é escrito em C puro.
O uLog fornece níveis de gravidade conhecidos (CRÍTICO, ERRO, AVISO, INFORMAÇÕES, DEBUG, TRACE).
O uLog suporta várias saídas definidas pelo usuário (console, arquivo de log, buffer de memória, etc.), cada uma com seu próprio nível de limite de relatório.
uLog é "positivamente independente" com dependências mínimas, exigindo apenas stdio.h, string.he stdarg.h.
Quando você não usa o uLog, ele não atrapalha: se ULOG_ENABLED for indefinido em tempo de compilação, nenhum código de log será gerado.
uLog é bem testado. Consulte o arquivo ulog_test.c anexo para obter detalhes.
EasyLogger
endereço do projeto:https://github.com/armink/EasyLogger
Já utilizo este projeto há muito tempo e recomendo fortemente. É o trabalho do RT-Thread, que foi integrado ao RTOS. As funções suportadas são muito ricas e atendem basicamente às necessidades de diversos desenvolvimentos.
As características são as seguintes:
Peso, ROM <1,6K, RAM <0,3K ;
Suporta vários modos de acesso (por exemplo: terminal, arquivo, banco de dados, porta serial, 485, Flash...);
O conteúdo do log pode incluir nível, carimbo de data/hora, informações de thread, informações de processo, etc.;
Thread-safe e suporta saída assíncrona e modos de saída em buffer ;
Suporta uma variedade de sistemas operacionais (RT-Thread, UCOS, Linux, Windows...), e também suporta plataformas bare metal ;
O log suporta o formato RAW e suporta hexdump ;
Suporte a filtragem dinâmica por tags , níveis , palavras- chave ;
Cada nível de log suporta exibição de cores diferentes;
É altamente extensível e suporta a extensão de novas funções na forma de plug-ins.
O acima é apenas uma parte deste projeto, você pode consultar o endereço do projeto para obter detalhes.
resumo
Espero que todos prestem atenção ao uso de logs no desenvolvimento normal, definam diferentes níveis de logs em cada estágio de desenvolvimento e configurem logs de módulo para diferentes módulos, de modo a facilitar a localização de alguns problemas, resolvê-los rapidamente e melhorar a eficiência . O artigo desta edição está aqui, nos vemos na próxima edição.
-- O fim --
Recomendado no passado
Código aparentemente simples, mas segredos escondidos...
Como evitar rachaduras? Tecnologia de criptografia MCU revelada
Aconselho você a parar de ser escravo do tráfico...
A universidade no arquivo de cabeçalho pede que a linguagem C preste atenção a esses princípios...
7 programas C resumidos em combate real, as coisas boas não estão escondidas
Clique no cartão acima para me seguir
Tudo o que você pediu parece bom , eu levo a sério como eu gosto