mirror of
https://github.com/manualdousuario/marreta.git
synced 2025-09-01 18:20:22 +00:00
sistema de analise de logs, somente por cli
This commit is contained in:
parent
5e71f6025b
commit
2d722b0467
1 changed files with 75 additions and 0 deletions
75
app/logs/index.php
Normal file
75
app/logs/index.php
Normal file
|
@ -0,0 +1,75 @@
|
|||
<?php
|
||||
/**
|
||||
* Analisador de Logs de Erro
|
||||
*
|
||||
* Este script analisa o arquivo de log de erros (logs/error.log) e gera um relatório
|
||||
* que mostra os erros mais comuns agrupados por domínio. É útil para identificar
|
||||
* padrões de falhas e problemas recorrentes em diferentes domínios.
|
||||
*
|
||||
* Funcionamento:
|
||||
* 1. Lê o arquivo de log linha por linha
|
||||
* 2. Extrai a URL e a mensagem de erro de cada linha
|
||||
* 3. Agrupa os erros por domínio
|
||||
* 4. Conta a frequência de cada tipo de erro
|
||||
* 5. Exibe um relatório formatado
|
||||
*
|
||||
* Uso:
|
||||
* php logs/index.php
|
||||
*
|
||||
* Formato esperado do log:
|
||||
* [DATA HORA] URL: http://exemplo.com - Error: Mensagem de erro
|
||||
*/
|
||||
|
||||
// Verifica se está sendo executado via CLI
|
||||
if (php_sapi_name() !== 'cli') {
|
||||
die('Este script só pode ser executado via linha de comando.');
|
||||
}
|
||||
|
||||
// Caminho para o arquivo de log
|
||||
$logFile = __DIR__ . '/error.log';
|
||||
|
||||
// Verifica se o arquivo de log existe
|
||||
if (!file_exists($logFile)) {
|
||||
die("Arquivo de log não encontrado: $logFile\n");
|
||||
}
|
||||
|
||||
$errors = [];
|
||||
|
||||
// Lê o arquivo de log
|
||||
$lines = file($logFile, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
|
||||
|
||||
foreach ($lines as $line) {
|
||||
// Extrai URL e mensagem de erro usando expressão regular
|
||||
if (preg_match('/URL: (https?:\/\/[^\s]+) - Error: (.+)$/', $line, $matches)) {
|
||||
$url = $matches[1];
|
||||
$error = $matches[2];
|
||||
|
||||
// Extrai o domínio da URL
|
||||
$domain = parse_url($url, PHP_URL_HOST);
|
||||
|
||||
// Inicializa o array do domínio se não existir
|
||||
if (!isset($errors[$domain])) {
|
||||
$errors[$domain] = [];
|
||||
}
|
||||
|
||||
// Conta ocorrências de erro para este domínio
|
||||
if (!isset($errors[$domain][$error])) {
|
||||
$errors[$domain][$error] = 0;
|
||||
}
|
||||
$errors[$domain][$error]++;
|
||||
}
|
||||
}
|
||||
|
||||
// Exibe os resultados
|
||||
echo "Análise de Erros por Domínio:\n";
|
||||
echo "============================\n\n";
|
||||
|
||||
foreach ($errors as $domain => $domainErrors) {
|
||||
echo "Domínio: " . $domain . "\n";
|
||||
echo "-------------------------\n";
|
||||
|
||||
foreach ($domainErrors as $error => $count) {
|
||||
echo "- " . $error . ": " . $count . " ocorrência(s)\n";
|
||||
}
|
||||
echo "\n";
|
||||
}
|
Loading…
Add table
Reference in a new issue