Logging einschränken

Hallo,

wie kann ich bei der Version 2.60 spezielle Log-Einträge vermeiden bzw. reduzieren?

Hintergrund: ich hab hier einen Server im LAN, der mir ca. 5x pro Minute per HTTP-Get Meßinformationen auf einen Server Socket zusendet.
Im IPS-Logfile hab ich dann 5 Meldungen pro Minute, die mir den Überblick über wirkliche Fehlermeldungen nehmen:

02.01.2013 15:07:03.398 | 20096 | MESSAGE | Server Socket | Client verbunden [192.168.0.77]
02.01.2013 15:07:05.788 | 20096 | MESSAGE | Server Socket | Client verbunden [192.168.0.77]
02.01.2013 15:07:18.991 | 20096 | MESSAGE | Server Socket | Client verbunden [192.168.0.77]
02.01.2013 15:07:21.288 | 20096 | MESSAGE | Server Socket | Client verbunden [192.168.0.77]

Bei der vorhergehenden Version konnte ich die Datei settings.xml editieren; bei der aktuellen Version 2.60 müßte sowas in settings.json möglich sein, dafür fehlt mir aber ein Editor oder anderes Tool.

(Der Filter in der Ansicht „Meldungen“ ist nicht ausreichend, weil dieses Einstellungen nur für die aktuelle Konsole während ihrer Lenbenszeit gültig sind und die Einträge trotzdem in z.B. logfile1356825600.log abgespeichert werden).

Grusz
T30

Je nachdem was bzw. wer sendet könntest du auf UDP umstellen. Das ist zustandslos, daher auch keine Connect-Meldungen. Hatte ich mit meinen Netcat-Sachen unter Linux gemacht und freue mich seitdem über ein aufgeräumteres Log…

IPS_Tray unten rechts mit der rechten Maustaste und bei den Einstellungen kannst Du einige Parameter bzgl. Logging einstellen.

Weiß jetzt nur den genauen Weg nicht aus dem Kopf :wink:

Handbuch:[b]

Entwicklerbereich/Spezialschalter[/b]

Spezialschalter
Benötigt: IP-Symcon >= 2.6
Um einige Funktionen von IP-Symcon besser kontrollieren zu können, ist es möglich, einige Schalter über die Einstellungen innerhalb der Tray-Applikation zu verändern.

  1. Kann ich nicht erkennen, wo diese Schalter bei der Version 2.60 lokalisiert sind (rechte Maustaste bringt nur Dienst starten/beenden, LiveUpdate, Info, Konsole öffnen), bei Version < 2.60 konnte man die die Datei settings.xml editieren (bei Auslieferung war u.a. bei mir LogfileVerbose aktiviert).

  2. Ist mir unklar, welche der beschriebenen Schalter ich betätigen müßte, um die Meldungen zu „Client verbunden“ zu unterdrücken:

[ul]
[li]LogfileVerbose
[/li]Sofern aktiviert, werden alle Meldungen ins Logfile geschrieben. Sofern deaktiviert, werden alle Meldungen außer KL_DEBUG ins Logfile geschrieben.
[li]VariableWatch
[/li]Sofern aktiviert, werden Wertänderungen/-aktualisierungen aller Variablen ins Logfile geschrieben. Sofern deaktiviert, werden diese nicht in das Logfile geschrieben.
[li]ScriptWatch
[/li]Sofern aktiviert, werden Skriptausführungen im Logfile protokolliert. Sofern deaktiviert, werden keine Skriptausführungen protokolliert. Fehler und Ausgaben (z.B. über echo) werden immer protokolliert.
[li]MessageQueueWatch
[/li]Sofern aktiviert, werden die Verzögerungszeiten der internen Verarbeitungsqueue im Logfile protokolliert. Sofern deaktiviert, werden diese nicht protokolliert.
[li]ThreadCount …
[/li][li]SaveInterval …
[/li][li]BackupCount …
[/li][li]LogfileCount …
[/li][/ul]

M.E. müßte dieser Protokoll-Filter im Socket-Modul implementiert werden, z.B. als Liste „vertrauenswürdiger Nodes“, deren Aktivität nicht protokolliert wird.

Grusz
T30

Kann ich nicht erkennen, wo diese Schalter bei der Version 2.60 lokalisiert sind

schau mal unter Info;)

  1. Ist mir unklar, welche der beschriebenen Schalter ich betätigen müßte, um die Meldungen zu „Client verbunden“

den gibt es nicht:)

Wenn Dir das so wichtig ist kannst Du dir das Logfile nur selber mittels PHP aufbereiten.

Das sind ja wirklich gut versteckte Features :frowning:

Information —> Status —> Expert options [change]

Wenn Dir das so wichtig ist kannst Du dir das Logfile nur selber mittels PHP aufbereiten.

Ein Parser für das Logfile hilft mir aber nicht, Fehler im Ablauf in Real-Zeit (in der Ansicht „Meldungen“) zu erkennen.

Vielleich wünsche ich mir mal was :slight_smile:

Grusz
T30

Ich habe bei mir alle Häkchen entfernt und IPS logged immer noch fleißig… Allerdings nur noch „connection timeouts“ und Socket Fehler. Die würde ich aber gerne auch aussschalten können, denn meine WebCams laufen nun mal nicht rund um die Uhr und das ist kein Fehler…

Was ich auch etwas komisch finde: Wenn ich in der Console bei „Meldungen“ den Filter ändere und z.B. keine Statusmeldungen mehr angezeigt bekommen möchte und das dann gleich danach wieder zurück ändere, kommen die Meldungen nicht mehr wieder. Scheinbar sind die gelöscht… Dabei hab’ ich doch nur einen Filter angepasst… :slight_smile:

Hat eigentlich jemand Erfahrungen mit der Einbindung eines umfangreicheren Logging-Frameworks, z.B. LOG4PHP?

Und noch eine Frage, die aber nur entfernt damit zusammen hängt: Kann man eigentlich Parameter an IPS Scripte übergeben oder geht das nur über den Umweg von Variablen… Dann könnte man sich so ein FW schnell selber schreiben…

Hallo John,

Hier würde ich zur selben Zeit wo die CAMs vom Netz gehen den entsprechenden Socket deaktivieren. Wie Du erkannt hast bringt das erstens eine Menge an Logging-Müll und zweitens besteht die Gefahr evtl. toter Threads.

Also alles was nicht benötigt wird, und erst Recht wenn es Fehler produziert, würde ich deaktivieren.

Danke Werner! Und meine letzte Frage konnte ich mir inzwischen selber beantworten:

boolean IPS_RunScriptEx ( integer $SkriptID , array $Parameter)

Wobei: Den Socket kann ich auf „inaktiv“ setzten, für den ImageGraber meiner Web-Cams geht das aber nicht…? Oder hab’ ich da was übersehen?

Sorry John,

nach den neuen Koventionen lautet der Befehl.

IPS_SetProperty(48630, "Interval", 0);
IPS_ApplyChanges(48630);

48630 durch die ID des ImageGrabber ersetzen.
0 = aus
>0 = Updateintervall.

Hier die Doku zu IPS_SetProperty