mirror of
https://github.com/manualdousuario/marreta.git
synced 2025-09-02 10:42:06 +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