[Web] script - Afficher les logs d'un serveur

beubeulone

Feignant
19 Juillet 2011
281
56
134
www.tarti.fr
Inspiré par un topic, j'ai pondu un petit script PHP qui permet simplement de visualiser les logs d'un serveur (vanilla, bukkit, moddé).
C'est pas l'oeuvre de ma vie, mais comme ça m'est utile, autant le partager, s'il peut servir à quelqu'un.
Avec coloration et ambiance console, il suffit d'accéder au fichier en local, FTP ou autre.

log.jpg


PHP:
<style>
#log {
    width: 100%;
    font-family: Consolas, monospace;
    background: black;
    color: gold;
    font-size: 90%;
    }
</style>

<?php
$log = file_get_contents('ftp://<pseudo>:<mot de passe>@<adresse>:<port>/<dossier(s)>/latest.log');    // distant FTP
//file_get_contents('latest.log', $log);        // distant/local
$log = explode("\n", $log);
//echo count($log).' lignes';
echo '<div id="log">';

foreach ($log as $l) {
    $ok = false;
    $l = htmlspecialchars($l);
    if (strstr($l, 'Can\'t keep up!') or strstr($l, 'lost connection:'))
        $l = '';
    elseif (strstr($l, '[Server thread/INFO]')) {
        $l = str_replace('[Server thread/INFO]', 'INFO ', $l);
        $ok = true;
        if (strstr($l, 'joined the game'))
            $l = '<span style="color:green">'.$l.'</span>';
        elseif (strstr($l, 'left the game'))
            $l = '<span style="color:red">'.$l.'</span>';
        elseif (strstr($l, 'logged in with entity') or strstr($l, 'User Authenticator') or strstr($l, 'Query Listener'))
            $l = '<span style="color:grey">'.$l.'</span>';
        elseif (strstr($l, '&lt;'))
            $l = '<span style="color:white">'.$l.'</span>';
        }
    elseif (strstr($l, '[Server thread/WARN]')) {
        $l = str_replace('[Server thread/WARN]', 'WARN ', $l);
        $ok = true;
        if (strstr($l, 'moved wrongly!'))
            $l = '<span style="color:grey">'.$l.'</span>';
        }
    elseif (strstr($l, 'User Authenticator') or strstr($l, 'Query Listener')) {
        $ok = true;
        $l = '<span style="color:grey">'.$l.'</span>';
        }
    else {
        $ok = true;
        }
    if ($ok == true)
        echo $l.'<br />';
    }
//print_r($log);
echo '</div>';

?>
 
Dernière édition:

beubeulone

Feignant
19 Juillet 2011
281
56
134
www.tarti.fr
Tu veux dire qu'avec JsonApi je peux afficher les logs d'un serveur vanilla ?
Si oui, je veux bien un exemple.

Fonctionne pour n'importe quel type de serveur (vanilla, moddé, bukkit...).