Benutzer-Werkzeuge

Webseiten-Werkzeuge


log_file

Log File anlegen

aus hifidelio-user Forum: Anleitung zum Anlegen eines Logfiles, dort gepostet von Musikuss am 07.10.2005

Da ich schon öfter geben wurde, zu erklären, wie man ein Logfile anlegt, werde ich das hier mal generell darlegen.

EDIT: Habe nun auch angefügt, wie man auch beim Webserver Logging aktivieren kann (siehe unten).

1. Was ist ein Logfile?

Wir haben bei unserer Programmierung jede Menge textuelle Ausgaben eingebaut, die uns bei der Fehlersuche helfen, bzw. dabei, den korrekten Ablauf zu prüfen. Diese Ausgaben werden bei den ausgelieferten Geräten normalerweise unterdrückt. Wenn man es einschaltet, entsteht auf dem Gerät eine immer größer werdende Textdatei, die alles mitprotokolliert, was es tut. Wenn man einen Rechner besitzt, der über Netzwerk mit dem Hifidelio Kontakt aufnehmen kann, kann man dieses Logfile einschalten und an uns weiterleiten. Ohne Rechner geht es (noch) nicht.

2. Wie wird das Logfile eingeschaltet?

Kurz: Mit dem Shell-Befehl „touch /DEBUG“. Lang: Zunächst muss man einen Weg finden, dem Hifidelio beliebige Befehle geben zu können. Dazu gibt es seit der Software 2.1.2 einen einfachen Weg: Bei Einstellungen→Dienste „Telnet“ auf „Ein“ schalten. Achtung: reagiert träge, bitte nur einmal „Ändern“ drücken.

Bei älterer Software (bei neuerer zusätzlich) kann man im Info-Bereich auf die Seriennummer gehen und die beiden oberen Funktionstasten gemeinsam drücken. Der Bildschirminhalt verschwindet zur Bestätigung kurz. Dies aktiviert EINE Einwahl. Danach (oder nach Neustart) ist Telnet wieder aus.

Nun wird auf dem Hifidelio ein weiterer Netzwerkdienst getstartet. Achtung: aus Sicherheitsgründen nicht eingeschaltet lassen, wenn der Hifidelio von außen erreichbar ist (zB per drahtlosem Netzwerk)! Nun müssen wir nur noch die Netzwerk-Adresse des Hifidelio herausfinden, wenn wir sie nicht schon kennen. Sie erscheint, wenn man auf Einstellungen→Netzwerk steht und F1: Info drückt. Bitte zu „WLAN“ oder „Ethernet“ wechseln, je nachdem, wie gleich die Verbindung aufgebaut werden soll.

Jetzt startet man am Rechner ein Programm, mit dem man Telnet-Verbindungen aufbauen kann. Da gibt es viele Möglichkeiten. Darüber möchte ich mich nicht groß auslassen. Für alte Windows und Mac Systeme gab es „Telnet-Clients“, alle anderen bieten eine Shell, Kommandozeile oder Terminal, in die man „telnet -l root <netzwerk-adresse des Hifidelio> eintippen kann. Wenn die Verbindung steht, erscheint „Password:“ und man antwortet mit „root“. Falls man das öfter machen will, und der Hifidelio tatsächlich erreichbar ist, sollte man zumindest dieses Passwort mit passwd auf ein eigenes ändern.

Wenn alles geklappt hat, wird man willkommen geheißen und kann sofort loslegen:

touch /DEBUG
fidelio restart

Nun geht der Vorhang einmal zu und wieder auf und ab sofort schreibt der Hifidelio alles mit, was er tut.

3. Wie heißt das Logfile und wo liegt es?

Es heißt „Fidelio.log“ und liegt in /tmp.

4. Wie kann ich mitlesen?

Per

tail -f /tmp/Fidelio.log

kann man mit Spannung verfolgen, was der Hifidelio so alles treibt…

5. Wie verschicke ich es?

mit

cp /tmp/Fidelio.log /data/import

wird es in den Import-Ordner kopiert. Dort kann man es einfach über File Sharing auf seinen Rechner kopieren und zB per E-Mail verschicken. Notfalls kann man auch kleine Teile kopieren und hier im Forum posten. Bitte nicht ungefragt das ganze File per PN an mich oder andere schicken, es belegt zu viel Platz.

6. Wie kann ich es löschen oder abschalten?

Mit

rm /tmp/Fidelio.log

wird es gelöscht (bitte regelmäßig machen, falls es immer läuft, es wird mit der Zeit ziemlich groß). Ganz abschalten kann man es durch:

rm /DEBUG

Ab dem nächsten Start wird es nicht mehr geführt.

7. Die Logdateien des Apache Webservers

In oben erwähnter Logdatei steht längst noch nicht alles, was auf dem Hifidelio so vor sich geht. Nur die von Hermstedt programmierten Applikationen schreiben in dieses Log. Wenn man Fehler sucht, die das Web-Interface oder den iTunes Serverdienst (Musik vom Hifidelio wird in iTunes gespielt) betreffen, muss man die Log-Funktionen im Apache Webserver aktivieren. Und das geht so:

Nach dem Einloggen als root (siehe oben):

vi /opt/apache/conf/httpd.conf

Dann nach unten laufen, bis dort steht:

# it's always nice to know the server has started
#ErrorLog logs/error_log

Auf dem '#' vor ErrorLog einmal 'x' drücken. Dadurch wird das '#' (Kommentarzeichen) gelöscht, das wiederum macht den „ErrorLog“ Befehl scharf. Wo wir gerade dabei sind, kann man auch noch die generelle Protokolldatei aktivieren: Auf die gleiche Weise das '#' ein paar Zeilen tiefer bei

#TransferLog logs/access_log

entfernen. Jetzt den Editor verlassen per „Shift-ZZ“. Danach:

/opt/apache/bin/apachectl graceful

Der Webserver startet jetzt neu und liest dadurch seine Konfiguration neu.

Danach wird ein Fehlerlog geführt in

/opt/apache/logs/error_log

und das Transfer-Log in

/opt/apache/logs/access_log

Das Web-Interface führt allerdings außerdem noch ein spezielles eigenes Log in /data/log/cgi_log, wenn /DEBUG (siehe oben) aktiviert ist.

Zum Abschalten ruft man den vi wieder wie oben auf, läuft auf die ErrorLog Zeile und tippt 'i' für insert und danach das '#'. Dann kann man (immer noch im insert Modus) auf das Transfer-Log laufen und erneut '#' drücken. Vor dem Shift-ZZ einmal die 'Esc'-Taste, sonst wird in den Text 'ZZ' eingefügt… ;)

Danach wieder ein blabla graceful und der Apache ist wieder still.

Anmerkungen und Vorschläge zu dieser Anleitung greife ich gerne auf. Dieses Thema könnte man hier auch wichtigtun, dafür könnte man die uralte Bugliste mal den antiken Archiven überantworten.

log_file.txt · Zuletzt geändert: 2007/08/20 11:41 (Externe Bearbeitung)