Es wurde beschlossen, eine (MySQL-) Datenbank für unsere Anwendungsprotokolle zu verwenden (es handelt sich um eine Java-App, die die Logback-Bibliothek verwendet). Ich hoffe, so etwas zu finden, tail -f
das ich mit einer bestimmten Tabelle in dieser Datenbank verwenden kann, die mir beim Hinzufügen neue Zeilen anzeigt (ähnlich wie tail -f
bei Protokolldateien).
12
Ich glaube nicht, dass manche Leute die Frage verstehen (oder ich nicht). Sie möchten die Abfragen nicht für die Datenbank protokollieren. Vielmehr wird ein Protokoll einer Anwendung in eine Datenbank verschoben. Wenn es eine Datei wäre, könnten Sie das Protokoll verfolgen. Wie können Sie eine Tabelle so gestalten, dass beim Hinzufügen einer neuen Zeile diese ausgegeben wird?
Es sollte nicht zu schwierig sein, eine einfache Schleife zu schreiben, um dies zu handhaben, vorausgesetzt, Sie haben ein eindeutiges Feld, das mit der Zeit monoton zunimmt (z. B. eine Sequenznummer).
quelle
Es scheint, dass viele von uns Ihre Frage nicht ganz verstehen. Was meinen Sie mit "Protokollierungsdatenbank" , was kein Standardbegriff für MySQL ist ?
Verwenden Sie das allgemeine MySQL -Abfrageprotokoll , das jede von einem Client empfangene Anweisung protokolliert.
Sie können dann log_output = TABLE in Ihrer my.cnf setzen. Die Datei wird in $ mysql_data_directory / general_log.CSV geschrieben. Mit
tail -f
dieser Datei können Sie Abfragen in Echtzeit anzeigen.quelle
Folgendes benutze ich. Scheint die einfachste Lösung zu sein, obwohl sie nicht sehr effizient ist:
watch "mysql db_name -e '(SELECT * FROM my_table ORDER BY id DESC LIMIT 10) ORDER BY id ASC;'"
quelle
Sie können dies auf hackige Weise tun, indem Sie tail -f für die Datenbankdatei (/var/lib/mysql/database_name/table_name.MY*) verwenden und dann Ihre Abfrage jedes Mal ausführen, wenn eine Zeile gelesen wird.
quelle
Ich schlage vor, jeder Tabelle, die Sie verfolgen möchten, ein Zeitstempelfeld hinzuzufügen. Auf diese Weise können Sie mit einer einfachen Abfrage ganz einfach die gewünschten Ergebnisse erzielen.
quelle
Vielleicht möchten Sie es versuchen:
http://www.jetprofiler.com/blog/10/tail--f-table-with-myterm/#comments
Es ist alt und wurde seit 3 Jahren nicht mehr berührt - aber ich habe es gerade ausprobiert und es funktioniert in Ordnung. Klonen Sie das BZR-Repo und lesen Sie die README.
quelle