Em muitos projetos PHP, o log de erros (error_log) acaba virando um arquivo gigantesco — especialmente em aplicações antigas ou sistemas com centenas de includes.
Mas nem sempre você quer ou pode alterar o php.ini ou .htaccess.
A boa notícia é que dá pra resolver direto no código, de forma segura e limpa.
O cenário clássico
Quase todo projeto PHP tem aquele arquivo comum, presente em todos os scripts — algo como conecta.php, config.php ou bootstrap.php.
Esse é o lugar ideal pra controlar a exibição e o log de erros.
O código
<?php
// conecta.php
// Controle de erros global
error_reporting(0);
ini_set('display_errors', '0');
ini_set('display_startup_errors', '0');
ini_set('log_errors', '0');
ini_set('error_log', '/dev/null');
// ... seu código de conexão, includes, etc ...
Com isso, o PHP:
- não mostra erros na tela,
- não grava logs em arquivo,
- e não envia nada pro
error_logglobal do servidor.
Alternando entre debug e produção
Se quiser manter o controle entre ambientes:
<?php
define('MODO_DEBUG', false); // true para desenvolvimento
if (MODO_DEBUG) {
error_reporting(E_ALL);
ini_set('display_errors', '1');
ini_set('log_errors', '1');
ini_set('error_log', __DIR__ . '/php_error.log');
} else {
error_reporting(0);
ini_set('display_errors', '0');
ini_set('log_errors', '0');
ini_set('error_log', '/dev/null');
}
Assim, você tem logs no ambiente de desenvolvimento e total silêncio em produção.
Aplicando em frameworks conhecidos
WordPress
Edite o arquivo wp-config.php antes da linha que diz “That’s all, stop editing!”:
@ini_set('display_errors', 0);
@ini_set('log_errors', 0);
@ini_set('error_log', '/dev/null');
Laravel
No arquivo .env, defina:
APP_DEBUG=false
LOG_CHANNEL=null
ou, se quiser ir além, no bootstrap/app.php:
ini_set('log_errors', '0');
ini_set('error_log', '/dev/null');
Projetos próprios (MVC, APIs, etc.)
Coloque no index.php ou num bootstrap.php comum, antes de carregar qualquer biblioteca.
Resumo rápido
.htaccesssó funciona com mod_php;- em FPM, use
.user.iniouini_set(); - o jeito mais prático e portátil é controlar tudo direto no PHP.
