Construa um inspetor de logs em CLI
Processe entrada de linha de comando e filtre logs operacionais.
- Ler argumentos de CLI e reportar linhas de log correspondentes.
Times de engenharia usam CLIs pequenas todos os dias para suporte e operações. Em Rust, std::env::args já resolve parsing básico; em produção, crates como clap ajudam a evoluir para interfaces mais completas.
1use std::env;
2
3fn main() {
4 let args: Vec<String> = env::args().collect();
5 if args.len() < 2 {
6 println!("usage: logtool <keyword>");
7 return;
8 }
9
10 let keyword = &args[1];
11 let sample = [
12 "INFO service started",
13 "WARN latency above threshold",
14 "ERROR database timeout",
15 ];
16
17 for line in sample {
18 if line.contains(keyword) {
19 println!("{}", line);
20 }
21 }
22}ERROR database timeout
Uma CLI focada pode ser distribuída como binário único para CI, resposta a incidentes e fluxos internos de desenvolvimento.
Experimente
Até 15 XPMapeie entrada para comportamento da CLI
Classifique cada cenário de execução pelo comportamento esperado da ferramenta.
“No keyword passed on the command line”
“Keyword `ERROR` is provided”
“Keyword `WARN` is provided”
“Arguments list only contains program name”
Principais conclusões
Ferramentas internas simples aceleram diagnósticos.
Mensagens de uso claras melhoram experiência de operador.
Distribuição por binário único simplifica deploy.
Quiz da aula
5 perguntas · aprovação com 4 acertos · até 50 XP
Ao passar, você conclui a aula e mantém sua sequência. As perguntas erradas voltarão em sessões de revisão.
Pratique: escreva código em Rust
Estes exercícios rodam de verdade. Escreva o programa, clique em “Executar testes” e leia o que o compilador informa: aprender a ler as mensagens do compilador é metade do aprendizado de Rust.
Filtre linhas de erro da entrada padrão
Leia uma palavra-chave e depois uma linha com logs separados por |. Imprima os logs que contêm a palavra-chave; se não houver, imprima none.
- Uma correspondência
- Sem correspondências
As aulas de Rust foram escritas para o Rust estável moderno; os exercícios rodam no Rust 1.82 pelo Wandbox, um serviço público gratuito. Seu código-fonte e a entrada de teste são enviados a esse serviço.
Dúvidas sobre esta lição
Travou em algum ponto? Pergunte. Descobriu algo? Compartilhe. Explicar também é uma ótima forma de aprender.
Carregando publicações…