PHP Leer un archivo LOG

Puedes crear una página en PHP para leer un archivo de registro (log) ubicado en la ruta “C:/Servidores/Logs/d2ghost.log” de la siguiente manera:
<!DOCTYPE html>
<html>
<head>
<title>Visualizador de Log</title>
</head>
<body>
<h1>Visualizador de Log</h1>
<hr>
<?php
// Ruta al archivo de registro
$logFilePath = 'C:/Logs/registro.log';
// Verificar si el archivo existe
if (file_exists($logFilePath)) {
// Leer el contenido del archivo de registro
$logContent = file_get_contents($logFilePath);
// Mostrar el contenido del archivo
echo '<pre>' . htmlspecialchars($logContent) . '</pre>';
} else {
// El archivo no existe
echo '<p>El archivo de registro no existe en la ubicación especificada.</p>';
}
?>
</body>
</html>
perfecto pero el archivo continuamente se esta modificando y quisiera que la pagina pueda leer cada ves que el archivo se modifica, como un “refresh” de la pagina pero que no haga colapsar la pagina.
Para lograr que la página se actualice automáticamente cada vez que el archivo se modifica, puedes usar JavaScript junto con PHP. Para hacer esto, puedes utilizar una técnica llamada “Server-Sent Events” (Eventos enviados por el servidor), que permite al servidor enviar actualizaciones al cliente de manera asincrónica. Aquí hay una versión modificada del código que hace esto:
<!DOCTYPE html>
<html>
<head>
<title>Visualizador de Log en Tiempo Real</title>
</head>
<body>
<h1>Visualizador de Log en Tiempo Real</h1>
<hr>
<pre id="logContent"></pre>
<script>
// Función para actualizar el contenido del log
function updateLog() {
fetch('get_log.php')
.then(response => response.text())
.then(data => {
document.getElementById('logContent').textContent = data;
// Llamar a la función de nuevo en 1 segundo (o el tiempo que desees)
setTimeout(updateLog, 1000);
});
}
// Inicializar la actualización del log
updateLog();
</script>
</body>
</html>
En este caso, hemos agregado un elemento <pre>
con el ID “logContent” para mostrar el contenido del archivo de registro. Luego, en el script JavaScript, utilizamos fetch
para obtener el contenido del archivo de registro de un archivo PHP separado llamado “get_log.php”. El servidor PHP enviará el contenido del archivo de registro y actualizará el contenido del <pre>
en la página HTML. Después de actualizar el contenido, se llama a setTimeout
para esperar un segundo antes de volver a solicitar una actualización. Puedes ajustar el tiempo en milisegundos según tus preferencias.
A continuación, crea un archivo PHP llamado “get_log.php” con el siguiente contenido:
<?php
$logFilePath = 'C:/Logs/registro.log';
if (file_exists($logFilePath)) {
// Leer el contenido del archivo de registro
$logContent = file_get_contents($logFilePath);
echo $logContent;
} else {
echo "El archivo de registro no existe en la ubicación especificada.";
}
Esta configuración permitirá que la página se actualice de forma automática cada segundo para reflejar los cambios en el archivo de registro sin colapsar la página. Asegúrate de que el servidor web tenga permisos para acceder al archivo de registro y ejecutar PHP.