log — Logging para Rust

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

O que é a biblioteca log para Rust?

A biblioteca log é uma abstração padrão para logging no ecossistema Rust. Ela fornece uma fachada (facade) leve que permite aos desenvolvedores escrever código que gera logs, sem se prender a uma implementação específica de logger (por exemplo, env_logger, simple_logger ou slog). É análoga às bibliotecas populares de logging em Python, mas com foco em desempenho e segurança de memória.

Por que a biblioteca log é necessária?

O principal objetivo do log é separar a geração de logs do seu processamento. Você pode usar as macros info!, warn!, error! no seu código e, posteriormente, ao conectar um dos backends (por exemplo, env_logger), redirecionar a saída para o console, um arquivo ou um sistema de monitoramento. Isso é especialmente útil para:

  • Depuração de sistemas complexos
  • Monitoramento de aplicações em produção
  • Criação de bibliotecas que não devem ditar ao usuário a forma de fazer logging

Instalação

Adicione ao Cargo.toml:

[dependencies]log = "0.4"env_logger = "0.10"  # para saída no console

Em seguida, execute cargo build.

Principais funções

  • Macros de logging: error!, warn!, info!, debug!, trace! — com suporte para formatação de strings como em println!.
  • Níveis de filtragem: é possível definir um nível mínimo (por exemplo, apenas erros) através da variável de ambiente RUST_LOG.
  • Extensibilidade: suporte para loggers personalizados através da trait Log.
  • Segurança: os logs não afetam o desempenho se o nível estiver desabilitado.

Exemplo de código em Rust

use log::{info, warn, error};

fn main() { // Inicialização do logger (env_logger) env_logger::init();

let user = "Alice"; let status = 200;

info!("Usuário {} entrou no sistema", user); warn!("Status da resposta: {} — cache possivelmente desatualizado", status); error!("Falha ao conectar ao banco de dados: {}", "timeout");}

Execute com RUST_LOG=info cargo run para ver todas as mensagens de nível info e superiores.

Quando usar

A biblioteca log é ideal para:

  • Qualquer aplicação Rust que precise de um sistema de logging padrão (CLI, servidores, utilitários).
  • Bibliotecas — para que o usuário possa escolher o backend.
  • Projetos migrando de Python: o conceito é semelhante a logging.getLogger().

Evite o log se você precisar de gravação assíncrona em arquivo ou logs JSON estruturados — nesses casos, tracing ou slog são mais adequados.

Recommendations