IPSLogger - mein kleiner feiner LogHandler für IPS

Hallo Brownson,

klasse dass du prowl implementiert hast. Werds ausprobieren,

Jürgen

Hallo Andreas,
ich habe gerade Deine Log Routinen installiert und mal entsprechende Statements in meinen Code eingebaut.

  • Es funktioniert Alles super und wie gewollt
  • Dein Quellcode ist super übersichtlich und gut zu verstehen! :slight_smile: Tausend Dank!

Ich logge aktuell testweise mit:

if (defined("c_ID_SingleOutEnabled")){ IPSLogger_Dbg(__file__, "arrzoneplayers=" . print_r($arrzoneplayers, true));}

Kannst Du nicht vielleicht ein …


define("IPSLOGGER", "1");
define("IPSLOGGER_MAJOR", "1");

oder ähnliches in Deinem Code unterbringen, dann kann man das Vorhandensein Deines Loggers unabhängig von der Definition der o.g. Variablen ID feststellen:

if (defined("IPSLOGGER")){ IPSLogger_Dbg(__file__, "arrzoneplayers=" . print_r($arrzoneplayers, true));}

Oder gibt es dafür in PHP mittlerweile eine bessere oder etabliertere Methode als die defines?

Viele Grüße, Benjamin

Hallo Benjamin,

na, das war ja wieder eine lange IPS Nacht …

verstehe zwar noch nicht ganz Deine Hintergründe (aus welchem Grund sollte der Logger nicht existent sein, wenn man in mit z.B. include_once ‚IPSLogger.ips.php‘ einbindet.), aber wenn dann würde ich exists_function verwenden:


if (function_exists('IPSLogger_Dbg')) {IPSLogger_Dbg(__file__, "arrzoneplayers=" . print_r($arrzoneplayers, true));}

lg
Andreas

Hallo Andreas,

das mit dem Function_exists ist schonmal ein spannender Tipp! :wink:

Der Hintergrund ist: ich möchte Deinen Logger gerne in meinen Skripten benutzen, aber diese auch weiter einfach weitergeben können, so dass dann keine Fehler auftreten, falls der Logger nicht installiert ist.

Danke und Viele Grüße, Benjamin

Wie kann Ich eigentlich einen Versions upgrade für den IPS Logger durchführen ???Mein Versuch einfach darüber zu installieren endete „Tödlich“ :frowning:

Einfach drüber kopieren und Installation nochmals ausführen, dadurch werden dann noch einige Variablen angelegt für die zusätzlichen Outputs …

lg

Hallo Jürgen,

nutze erstmalig den Logger um eine neues Skript zu testen.

Stellt sich schon die erste Frage.

Ich bekomme es nicht zum laufen ein Array mit zu übergeben.

IPSLogger_Trc(c_LogId, print_r($array));

sollte eigentlich

Array
(
    [0] => 44584
    [1] => 23616
    [2] => 54965
    [3] => 58388
    [4] => 33991
    [5] => 51534
    [6] => 23142
    [7] => 40907
    [8] => 10053
)

in die HTML-Ausgabe schreiben.

Ankommen tut nur der beiliegende Screenshot.

Hast Du eine Idee?

IPSLogger.png

um print_r als Input für eine weitere Funktion zu verwenden, muss man als 2. Partameter true angeben: Siehe auch PHP: print_r - Manual

Alternativ kannst Du auch die Funktion implode verwenden …

lg
Andreas

Hallo Andreas,

erst einmal sorry für die Verwechslung des Vornamens :rolleyes:

Danke, das mit dem true wußte ich noch nicht klappt aber natürlich.

Vielen Dank

Habe auch bei meinem Logger wieder einige kleinere Veränderungen vorgenommen:

Da ich sehr viel mit Funktionen und Includes arbeite habe ich jetzt beim Error-Logging die Protokollierung des Stacks hinzugefügt. Dadurch sieht man jetzt die genaue Reihenfolge der aufrufenden Prozeduren, in der der Fehler passiert ist.

Zusätzlich habe ich auch die HTML Ausgabe etwas modifiziert.
Ausserdem habe ich alle Constanten, die man an die persönlichen Bedürfnisse anpassen kann, in die Datei IPSLogger_Configuration ausgelagert.

Um Benachrichtigen besser handlen zu können habe ich mal den LogType „Notification“ eingeführt, dieser liegt level mäßig zwischen Warning und Information. In der Logging Prozedure kann man für diesen Logging Type auch eine Priorität spezifizieren. Die Output Konfiguration für Mail und Prowl bietet jetzt die Möglichkeit die Priorität einzustellen. Je niedriger die Priorität desto wichtiger.

Zu guter Letzt kann man jetzt auch noch Pfade für das WebFront und das iPhone Interface angeben.

lg
Andreas

Hi Brownson,

ich nutze Deinen Logger seit der ersten Version da der mir sehr hilft mein System „sauber“ zu halten. Aber irgendwie scheitere ich an der Installation der neuen Version. Hab die Scripte ins IPS/Scripts-Verzeichnis kopiert und das Installations-Script ausgeführt, bekomme aber reichlich Fehler gemeldet (fehlende Variablen). Hab dann die bisherigen Variablen und Sripte (von der Vorversion) gelöscht, dann das Install-Script nochmal laufen lassen, selber Fehler:


Warning:  Variable #32250 existiert nicht in C:\IP-Symcon\scripts\IPSLogger_Output.ips.php on line 126

Warning:  Variable #35260 existiert nicht in C:\IP-Symcon\scripts\IPSLogger_Output.ips.php on line 134

Warning:  Variable #59628 existiert nicht in C:\IP-Symcon\scripts\IPSLogger_Output.ips.php on line 118

Warning:  Variable #45072 existiert nicht in C:\IP-Symcon\scripts\IPSLogger_Output.ips.php on line 96

Warning:  Variable #35430 existiert nicht in C:\IP-Symcon\scripts\IPSLogger_Output.ips.php on line 55

Warning:  Variable #24900 existiert nicht in C:\IP-Symcon\scripts\IPSLogger_Output.ips.php on line 79

Warning:  Variable #23257 existiert nicht in C:\IP-Symcon\scripts\IPSLogger_Output.ips.php on line 194

Warning:  Variable #16425 existiert nicht in C:\IP-Symcon\scripts\IPSLogger_Output.ips.php on line 226

Warning:  include_once(IPSInstaller.ips.php) [function.include-once]: failed to open stream: No such file or directory in C:\IP-Symcon\scripts\25403.ips.php on line 6

Warning:  Variable #32250 existiert nicht in C:\IP-Symcon\scripts\IPSLogger_Output.ips.php on line 126

Warning:  Variable #35260 existiert nicht in C:\IP-Symcon\scripts\IPSLogger_Output.ips.php on line 134

Warning:  Variable #59628 existiert nicht in C:\IP-Symcon\scripts\IPSLogger_Output.ips.php on line 118

Warning:  Variable #45072 existiert nicht in C:\IP-Symcon\scripts\IPSLogger_Output.ips.php on line 96

Warning:  Variable #35430 existiert nicht in C:\IP-Symcon\scripts\IPSLogger_Output.ips.php on line 55

Warning:  Variable #24900 existiert nicht in C:\IP-Symcon\scripts\IPSLogger_Output.ips.php on line 79

Warning:  Variable #23257 existiert nicht in C:\IP-Symcon\scripts\IPSLogger_Output.ips.php on line 194

Warning:  Variable #16425 existiert nicht in C:\IP-Symcon\scripts\IPSLogger_Output.ips.php on line 226

Warning:  include_once() [function.include]: Failed opening 'IPSInstaller.ips.php' for inclusion (include_path='.;C:\php5\pear') in C:\IP-Symcon\scripts\25403.ips.php on line 6

Fatal error:  Call to undefined function CreateCategoryPath() in C:\IP-Symcon\scripts\25403.ips.php on line 11

… was läuft denn da bei mir schief?

hm,

ich hab jetzt mal Zeile 6 (Install-Script)


include_once "IPSInstaller.ips.php";

geändert in


include_once "IPSLogger_Installation.ips.php";

darauf bekomme ich diese Fehlermeldung:


Fatal error:  Cannot redeclare CreateTimer() (previously declared in C:\IP-Symcon\scripts\25403.ips.php:206) in C:\IP-Symcon\scripts\IPSLogger_Installation.ips.php on line 222

jetzt weis ich auch nicht mehr weiter…:confused:

Ach ja, sorry, hatte ich vergessen:
Habe jetzt für die Logger Installation auch den IPSInstaller (einfach in das Script Verzeichnis kopieren) verwendet, um doppelten Code zu vermeiden.

lg
Andreas

ja guck, schon läuft’s :smiley:

Danke für’s Script, feine Sache!

Hi vielen Dank für den IPS Logger.

Ich habe alles ohne Fehlermeldung installieren können, aber ich bekomme keine richtigen Logs Angezeigt ?

Habe schon alle einstellungen ausprobiert, aber ich bekomme nur die Testmedlungen hin sonst kommt keine Meldung :frowning:

Was mache ich Falsch ?

hmmm, Html Output muß aktiviert sein und der LogLevel sollte hoch genug sein, dann sollte auch was gelogged werden.

Versuch mal folgendes:


<?
	include_once 'IPSLogger.ips.php';

	SetValue(c_ID_HtmlOutEnabled, true);
	SetValue(c_ID_HtmlOutLevel, c_LogLevel_All);

	IPSLogger_Fat(__file__, 'Test for a Fatal Error');
	IPSLogger_Err(__file__, 'Test for a Error ...');
	IPSLogger_Wrn(__file__, 'Test for a Warning');
	IPSLogger_Not(__file__, 'Test for a Notification with Priority 0 (High)');
	IPSLogger_Not(__file__, 'Test for a Notification with Priority 10 (Low)');
	IPSLogger_Inf(__file__, 'Test for a Information Message ...');
	IPSLogger_Dbg(__file__, 'Test for a Debug Message ...');
	IPSLogger_Com(__file__, 'Test for a Communication Message ...');
	IPSLogger_Trc(__file__, 'Test for a Trace Message ...');
	IPSLogger_Tst(__file__, 'Test for a Test Message ...');

?>

lg
Andreas

Hallo

Ich habe den Logger ja schon drinnen (wegen dem Squeezeboix script) aber bisher nicht verwendet.

Nun möchte ich ihn auch für andere Sachen produktib verwenden, und da stellt sich die Frage :

Ich habe einen Schlüssel (RFID) mit dem die Putzfrau zB.: reinkommt.
Solche Meldungen möchte ich nun ans iPAD schicken, damit ich jeden dieser vorgänge habe.
Soll man solche Meldungen ich nenne sie mal „wichtige“ Meldungen unter dem status „FATAL Error“ setzen? - da viele der anderen Typen ja nicht so wichtig sind, das die synchron ans iPAD gehen oder?

[edit] … und hat sich schon mal wer Gedanken gemacht, ob man die Sachen auch auf ein Android bekommt?

Hallo,

ich hab für solche Benachrichtigungen die Prozedure IPSLogger_Not (Notification) vorgesehen. Bei dieser Funktion kann man als 3. Parameter auch die Priorität angeben. Für die Outputs Mail und Prowl kann man dann im Webfront einstellen welche Messages mit welcher Priorität man empfangen möchte (je niedriger - desto wichtiger).

Fehler vom Type Fatal sollte eigentlich wirklich nur für schwerwiegende Fehler verwendet werden.

lg

Habe auch den IPSLogger wieder etwas modifiziert, viel hat sich nicht getan:

[ul]
[li] kleinen Bug behoben - LogLevel „Notification“ wurde nicht korrekt gemapped.
[/li][li] WebFront Interface wird jetzt automatisch installiert
[/li][li] Neue Funktion „IPSLogger_OutProgram“, mit dem ist es möglich ein kleines Application Log zu realisieren - praktisches Anwendungsbeispiel folgt …
[/li][/ul]

… und den Logger auch ins WIKI gepostet: /wiki/IPSLogger

lg
Andreas

Hallo Andreas,

sofort installiert, aber:
Warning: Wrong parameter count for ips_setvariableprofileassociation() in C:\IP-Symcon\scripts\IPSLogger_Installation.ips.php on line 231

Warning: Wrong parameter count for ips_setvariableprofileassociation() in C:\IP-Symcon\scripts\IPSLogger_Installation.ips.php on line 232

Warning: Wrong parameter count for ips_setvariableprofileassociation() in C:\IP-Symcon\scripts\IPSLogger_Installation.ips.php on line 233

Warning: Wrong parameter count for ips_setvariableprofileassociation() in C:\IP-Symcon\scripts\IPSLogger_Installation.ips.php on line 234

Warning: Wrong parameter count for ips_setvariableprofileassociation() in C:\IP-Symcon\scripts\IPSLogger_Installation.ips.php on line 235

Warning: Wrong parameter count for ips_setvariableprofileassociation() in C:\IP-Symcon\scripts\IPSLogger_Installation.ips.php on line 236

Warning: Wrong parameter count for ips_setvariableprofileassociation() in C:\IP-Symcon\scripts\IPSLogger_Installation.ips.php on line 237

Warning: Wrong parameter count for ips_setvariableprofileassociation() in C:\IP-Symcon\scripts\IPSLogger_Installation.ips.php on line 238

Warning: Wrong parameter count for ips_setvariableprofileassociation() in C:\IP-Symcon\scripts\IPSLogger_Installation.ips.php on line 239

Was könnte das sein? Installation erfolgte nach Anleitung auch im Webfront ist schon etwas zu sehen… aber nur die error Zeile