En tant que langage de programmation côté serveur largement utilisé, PHP joue un rôle important dans le développement et le déploiement des applications Web. Le traitement des journaux et la surveillance sont des liens clés pour assurer la stabilité des applications et l'optimisation des performances. Cet article introduira les méthodes de traitement et de surveillance des journaux couramment utilisés et pratiques dans le déploiement des emballages PHP, et sera accompagné d'un exemple de code pour vous aider à gérer et à surveiller efficacement les applications PHP.
En PHP, le processus de journalisation peut être simplifié à l'aide de bibliothèques de journalisation professionnelles. Monolog est l'une des bibliothèques de journaux les plus populaires, prenant en charge une variété de niveaux de journal, de formatage et de méthodes de stockage, et peut répondre à divers besoins en journaux. L'exemple suivant montre comment se connecter à l'aide de Monolog:
use Monolog\Logger;
use Monolog\Handler\StreamHandler;
<p>// Créer un bûcheron<br>
$log = new Logger('name');</p>
<p>// Ajouter àStreamHandler,Écrivez le journal dans le fichier et définissez le niveau du journal surWARNING<br>
$log->pushHandler(new StreamHandler('/path/to/your.log', Logger::WARNING));</p>
<p>// Enregistrer un journal d'avertissement<br>
$log->warning('Foo');<br>
Si vous ne comptez pas sur des bibliothèques tierces, vous pouvez également implémenter la fonction de journalisation vous-même. L'exemple suivant est une fonction de journal personnalisée simple:
function writeLog($message) {
// Ouvrez le fichier journal,Mode ajouté
$file = fopen('/path/to/your.log', 'a');
// Écrire du contenu du journal
fwrite($file, date('Y-m-d H:i:s') . ' ' . $message . "\n");
// Fermer les ressources de fichiers
fclose($file);
}
<p>// Appeler les fonctions de journalisation personnalisées<br>
writeLog('This is a log message.');<br>
Avec l'aide d'outils de surveillance professionnels, vous pouvez obtenir l'état d'exploitation et les indicateurs de performance de l'application en temps réel. Par exemple, Prometheus est une solution de surveillance open source populaire qui peut collecter des mesures d'application avec l'exportateur. L'exemple suivant montre comment utiliser les clients de Prometheus et Guzzle pour surveiller la durée des demandes d'application Web:
use GuzzleHttp\Client;
<p>$client = new Client();</p>
<p>// Enregistrez l'heure de début de la demande<br>
$start = microtime(true);</p>
<p>// envoyerHTTPdemander<br>
$response = $client->get('<a rel="noopener" target="_new" class="" href="http://example.com">http://example.com</a>');</p>
<p>// 记录demander结束时间<br>
$end = microtime(true);</p>
<p>// 计算demander持续时间<br>
$duration = $end - $start;</p>
<p>// envoyer指标数据到Prometheus Exporter<br>
$client->post('<a rel="noopener" target="_new" class="" href="http://localhost:9091/metrics/job/myapp">http://localhost:9091/metrics/job/myapp</a>', [<br>
'body' => "myapp_request_duration_seconds $duration"<br>
]);<br>
En plus d'utiliser des outils de surveillance standard, vous pouvez également collecter et stocker des mesures de performances d'application via des fonctions personnalisées. Les exemples sont les suivants:
function monitor($metric, $value) {
// Connectez-vous à la base de données pour stocker les données de surveillance
$pdo = new PDO("mysql:host=localhost;dbname=myapp", "username", "password");
$pdo->exec("INSERT INTO metrics (metric, value, timestamp) VALUES ('$metric', '$value', NOW())");
}
<p>// 使用自定义监控函数记录demander计数<br>
monitor('request_count', 1);<br>
En résumé, le traitement du journal dans le déploiement packagé PHP peut utiliser la bibliothèque de journaux matures ou les fonctions personnalisées, tandis que la surveillance peut s'appuyer sur des outils open source ou implémenter la logique de surveillance par elle-même. Des choix raisonnables basés sur les exigences réelles du projet peuvent assurer efficacement le fonctionnement stable et l'optimisation des performances des applications PHP.