溫馨提示×

如何監控Ubuntu PHP日志實時變化

小樊
54
2025-04-02 23:42:53
欄目: 編程語言

要監控Ubuntu PHP日志的實時變化,可以使用以下幾種方法:

使用 tail 命令

tail 命令是實時顯示日志內容的最常用方法。你可以使用以下命令來實時監控 PHP 日志文件的變化:

tail -f /var/log/php7.0-fpm.log

或者,如果你想要監控多個日志文件,可以使用 multitail 命令:

sudo apt install multitail  # 安裝 multitail
multitail /var/log/php7.0-fpm.log /var/log/php7.0-fpm.error.log

使用 PHP 腳本

你可以編寫一個簡單的 PHP 腳本來監控日志文件的變化。以下是一個示例腳本:

<?php
$logFile = '/var/log/php7.0-fpm.log';
$fileSize = filesize($logFile);

while (true) {
    clearstatcache();
    $currentSize = filesize($logFile);
    if ($currentSize > $fileSize) {
        $handle = fopen($logFile, 'r');
        fseek($handle, $fileSize);
        $content = fread($handle, $currentSize - $fileSize);
        fclose($handle);
        echo $content;
        $fileSize = $currentSize;
    }
    sleep(1);
}
?>

將上述代碼保存為 log_monitor.php,然后使用 PHP 運行它:

php log_monitor.php

使用 WebSocket

WebSocket 是一種全雙工通信協議,可以實現實時的雙向通信。你可以使用 PHP 的 WebSocket 庫來創建一個 WebSocket 服務器,并在客戶端上通過 JavaScript 接收和顯示日志內容。

以下是一個簡單的 WebSocket 服務器示例:

<?php
require 'WebSocketServer.php';

$server = new WebSocketServer();
$server->bind('0.0.0.0', 8000);
$server->run();

function onLogChange($log) {
    global $server;
    $server->sendAll($log);
}

$logFile = '/var/log/php7.0-fpm.log';
$server->setLogChangeListener('onLogChange');
$server->setLogFile($logFile);
?>

在客戶端,你可以使用 JavaScript 的 WebSocket API 來連接到 WebSocket 服務器,并接收和顯示日志內容:

var socket = new WebSocket('ws://localhost:8000');
socket.onmessage = function(event) {
    console.log(event.data);
};

這些方法可以幫助你實時監控 Ubuntu 系統中 PHP 日志的變化,并及時采取相應的措施。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女