10
votes

Implémentation Web de "Nom de la queue -f"?

J'ai un fichier journal et je veux créer une page Web (éventuellement python mais non strictement) qui fonctionnera beaucoup comme une commande de commande UNIX "FileName File -F" (Afficher les nouvelles lignes de journal quand elles sont écrites dans le fichier).

de sorte que l'utilisateur verra en permanence le log dans le navigateur.

Comment impliqueriez-vous cela?


0 commentaires

4 Réponses :


0
votes

Vous avez lu le fichier et imprimez les dernières lignes à la page. Vous pouvez également utiliser une variable Get-variable pour définir le nombre de lignes à la sortie en utilisant? N = x où x est le nombre de lignes.


1 commentaires

Comment le faire u0dated automatiquement?



9
votes

Tailon est une webApp python qui, entre autres choses, fournit queue -f < / code> comme fonctionnalité. De plus, WTEE (un projet soeur de Tailon) peut rendre toute sa rue Viette dans le Navigateur - son utilisation est identique à la commande UNIX TEE COMMANDER: Nom de la queue -f | wtehe


0 commentaires

2
votes

J'ai mis en œuvre ceci en utilisant jQuery (.ajax) et php (JSON).

Le flux est essentiellement comme suit:

  • L'utilisateur appelle une page HTML sur son navigateur
  • page HTML contient un appel initial jQuery .ajax Appel à un script PHP distant sur le serveur qui effectue la fonction requise, dans ce cas, récupérant quelques-unes des dernières lignes du fichier "à queue"
  • Si aucune nouvelle ligne n'est disponible, le script PHP Just Loops (WILE L'appelant Ajax attend, c'est-à-dire longuiser l'écart), et peut être configuré de temps si nécessaire (retourner une valeur appropriée à la fonction d'appel Ajax sur le client)
  • Lorsque de nouvelles lignes sont détectées par le script PHP, elles sont enveloppées dans une réponse JSON et renvoyées à la fonction d'appel AJAX du navigateur, qui l'appelle ensuite au contenu existant de la page.
  • La fonction JavaScript va alors récursivement le même appel AJAX, assis efficacement dans une boucle infinie.

    Dans ma mise en œuvre spécifique, j'ai procédé à ce qui suit:

    • L'appel AJAX sur le client et le script PHP sur le serveur ont des délais d'attente à gérer, par exemple, des connexions brisées gentiment. Assure également que l'appel Ajax n'attend pas éternellement.
    • L'appel AJAX passe un numéro de ligne sous forme de référence au serveur pour le dire à quoi le dernier numéro de ligne était-il reçu, le serveur sait donc les lignes à revenir. Initialement, la valeur est nulle et le serveur renvoie immédiatement les 10 dernières lignes du fichier
    • Lorsque le script PHP est appelé, il utilise les clients le dernier numéro de ligne pour effectuer une vérification rapide sur le fichier; Si de nouvelles lignes ont déjà été ajoutées, il les renvoie immédiatement, sinon il est assis dans une boucle (1 seconde), puis vérifie plutôt les fichiers CTTI (ou MTTI) pour détecter lorsque de nouvelles lignes sont écrites. Ceci est plus efficace que de compter les lignes du fichier (qui pourraient être énormes) chaque seconde.

      Voir ma mise en oeuvre de la queue longue / en temps réel à l'aide de JQuery et PHP ici: https://github.com/Richardvk/web_file_tail


0 commentaires

1
votes

Scullog , ayant une capacité de partage du lecteur local au navigateur. Streamez le fichier journal via Socket.IO sur le navigateur. Il exécute sur n'importe quelle plate-forme telle que Windows / Linux / Mac. Il fonctionne comme service ou mode autonome.


1 commentaires

Cela devrait être la réponse acceptée. Travailler parfaitement. Merci d'avoir fait ça.