WP24Horas
♙ ◴
PARCEIRO RECOMENDADO Vai colocar um WordPress no ar? Comece com uma hospedagem que acompanha o seu projeto. Conhecer a HostGator link patrocinado

Desenvolvimento e Programação

Como Gerenciar Logs e Erros Internos em Plugins WordPress (Do Jeito Certo)

Por Asllan Maciel3 min de leitura
Como Implementar um Sistema de Logs Profissional em Plugins WordPress
Esta entrada é parte 7 de 15 na série WordPress Extremo: Arquitetura e Engenharia de Plugins

WordPress Extremo: Arquitetura e Engenharia de Plugins

Como Criar um Plugin Profissional com Composer e PSR-4

Como Criar um Plugin WordPress com Composer e PSR-4 – WordPress Extremo Dia 1

Como Usar Serviços em Plugins para Código Limpo e Desacoplado - WordPress Extremo Dia 2

Como Usar Serviços em Plugins para Código Limpo e Desacoplado – WordPress Extremo Dia 2

Como Usar Repositórios em Plugins para Separar Lógica de Dados

Como Usar Repositórios em Plugins para Separar Lógica de Dados – WordPress Extremo Dia 3

Injeção de Dependência Manual em Plugins WordPress

Injeção de Dependência Manual em Plugins WordPress – WordPress Extremo Dia 4

Criando Hooks Personalizados com do_action e apply_filters

Hooks Avançados no WordPress: apply_filters, do_action e boas práticas

Como Criar Comandos WP-CLI Personalizados para Plugins

Criando Comandos WP-CLI Personalizados para Plugins WordPress

Como Implementar um Sistema de Logs Profissional em Plugins WordPress

Como Gerenciar Logs e Erros Internos em Plugins WordPress (Do Jeito Certo)

Como Tratar Erros e Exceptions em Plugins WordPress do Jeito Certo

Tratamento de Erros e Uso Inteligente de Exceptions em Plugins WordPress

Segurança Profunda em Plugins WordPress

Segurança Profunda em Plugins WordPress

Como Internacionalizar seu Plugin WordPress (i18n e l10n) do Jeito Certo

Internacionalização e Localização (i18n e l10n)

Criando Settings Pages Profissionais no WordPress

Criando Settings Pages Profissionais no WordPress

Como Criar Permissões Customizadas e Controle de Acesso em Plugins WordPress

Permissões Customizadas e Controle de Acesso em Plugins WordPress

Separação Clara de Camadas - Core, Domain e Infra

Separação Clara de Camadas: Core, Domain e Infra

Atualizações Automáticas de Plugin WordPress via GitHub

Atualizações Automáticas via GitHub.

Checklist Final de Publicação - WordPress.org e Produção

Checklist Final de Publicação: WordPress.org e Produção

Fala, pessoal! 👋
Aqui é o Asllan Maciel — e hoje vamos voltar ao tema Arquitetura e Engenharia de plugins e falar sobre algo essencial para qualquer plugin WordPress profissional: gerenciamento inteligente de erros e logs.

Precisamos avançar com a estruturação do nosso plugin, mas logo logo vamos voltar à criação de blocos em nível avançado!

Então… se você quer elevar o nível dos seus projetos, precisa abandonar o velho error_log() espalhado no meio do código. Hoje vamos estruturar um sistema de logs real, digno de plugin de mercado.

🚀 Bora aprender do jeito certo?


🚀 Por que ter um sistema de logs no plugin?

✅ Facilita a identificação de bugs sem depender de ambientes ao vivo.
✅ Permite rastrear falhas específicas, como problemas de integração de API ou erros em transações.
✅ Profissionaliza seu plugin: quem lida bem com erros passa segurança.
✅ Melhora o suporte ao cliente, reduzindo o tempo de análise de problemas.

🎯 Exemplo real:

Sem log:
Usuário: “O pagamento não funcionou!”
Você: “🤔… vou tentar reproduzir aqui.”

Com log:
Você abre o log e vê:
[2025-04-23 15:47:00] - Erro no pagamento: Código 403 - Permissão negada.

🔵 Resultado: Você soluciona rápido e transmite confiança!


🛠️ Estruturando o Gerenciador de Logs

Decidimos implementar uma classe de serviços — e não apenas um “Logger” — para manter o plugin modular, limpo e escalável.

Estrutura:

/src/Services/LogService.php

Código:

<?php

namespace WpArquiteturaExtrema\Services;

class LogService
{
    protected $log_file;

    public function __construct()
    {
        $upload_dir = wp_upload_dir();
        $this->log_file = $upload_dir['basedir'] . '/wp-arquitetura-extrema.log';
    }

    public function info($message)
    {
        $this->write_log('INFO', $message);
    }

    public function warning($message)
    {
        $this->write_log('WARNING', $message);
    }

    public function error($message)
    {
        $this->write_log('ERROR', $message);
    }

    protected function write_log($level, $message)
    {
        $datetime = date('Y-m-d H:i:s');
        $formatted = "[{$datetime}] {$level}: {$message}" . PHP_EOL;
        file_put_contents($this->log_file, $formatted, FILE_APPEND);
    }
}

🔌 Como Instanciamos o LogService?

Vamos garantir que o log esteja disponível em todo o plugin.
Pra isso, alteramos nosso Init para carregar o serviço de log centralmente.

Atualização no Init:

<?php

namespace WpArquiteturaExtrema\Hooks;

use WpArquiteturaExtrema\Services\HelloService;
use WpArquiteturaExtrema\Repositories\UserRepository;
use WpArquiteturaExtrema\Services\LogService;

class Init
{
    protected $logger;

    public function register()
    {
        $this->logger = new LogService();

        add_action('init', [$this, 'init_plugin']);
        add_action('init', [$this, 'register_blocks']);
    }

    public function init_plugin()
    {
        $repo = new UserRepository();
        $service = new HelloService($repo);
        $service->execute();

        // Exemplo de uso do logger
        $this->logger->info('Plugin inicializado com sucesso.');
    }

    public function register_blocks()
    {
        // Registro dos blocos conforme já estruturamos
    }
}

Agora, qualquer serviço que precisar de logs poderá usar essa instância de forma controlada! 🔥


🧠 Boas práticas para usar o Log

  • Não abuse: logue apenas eventos relevantes.
  • Proteja: nunca deixe logs expostos publicamente em produção.
  • Rotacione: dependendo do volume, implemente rotação (arquivar logs antigos).
  • Padronize mensagens: sempre claras e objetivas.

📌 Recapitulando

Hoje estruturamos:

✅ Um sistema de logs inteligente com níveis de informação (info, warning, error).
✅ Uma maneira centralizada de instanciar e usar o Logger.
✅ A integração limpa com nossa arquitetura já existente.

Se você quer seguir elevando o nível, fique ligado nos próximos dias! 🚀

WordPress Extremo: Arquitetura e Engenharia de Plugins

Criando Comandos WP-CLI Personalizados para Plugins WordPress Tratamento de Erros e Uso Inteligente de Exceptions em Plugins WordPress

Sobre o autor

Asllan Maciel

Asllan Maciel, Fundador do WP24Horas, Consultor de Marketing Digital e amante do Empreendedorismo Digital. Tem um caso de amor com o WordPress.