Logs aufbohren

Fragen zur Installation von CONTENIDO 4.9? Probleme bei der Konfiguration? Hinweise oder Fragen zur Entwicklung des Systemes oder zur Sicherheit?
Antworten
mattmarr
Beiträge: 349
Registriert: Mo 3. Aug 2009, 14:11
Kontaktdaten:

Logs aufbohren

Beitrag von mattmarr » Mo 22. Feb 2016, 08:06

Hi!

mal eine Frage:

Gibt es irgendwie die Möglichkeit das Log-Buch etwas ausführlicher zu gesicht zu bekommen?

Beispiel:
- Wird ein Benutzer gelöscht, sehe ich nicht wer gelöscht wurde.
- Wird Mehrfachlöschung benutzt, sehe ich nicht was alles gelöscht wurde
- Wird Kategorie On- oder offline setzen gedrückt, sehe ich nicht welche
- ...



Gruß
Matthias

Oldperl
Beiträge: 4137
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Kontaktdaten:

Re: Logs aufbohren

Beitrag von Oldperl » Mo 22. Feb 2016, 19:13

Hallo Matthias,

das Benutzer-Log von Contenido ist/war eigentlich primär einmal zur redaktionellen Verfolgbarkeit von Änderungen im Artikelbereich gedacht. Daher ist es hauptsächlich auch auf das Loggen von Artikel-bezogenen Tätigkeiten ausgelegt. Man findet entsprechendes in der Klasse Backend und deren Methode "log"

Das Eintragen selbst wird nur an ein paar Stellen im Core angestossen, so beispielsweise in der Datei main.php (Zeilen 177-185) und dort auch nur dann, wenn eine 'action' vorhanden ist. Schaut man sich die Umsetzung an, so ist es eigentlich kein reines Benutzer-Log sondern wie gesagt eher ein Redakteurs-Log.

Sicherlich könnte man das noch etwas aufbohren indem man in der Methode die eine oder andere Info abhängig von der Aktion zum Eintrag hinzufügt.

Gruß aus Franken

Ortwin
ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog

mattmarr
Beiträge: 349
Registriert: Mo 3. Aug 2009, 14:11
Kontaktdaten:

Re: Logs aufbohren

Beitrag von mattmarr » Di 9. Mai 2017, 08:50

Hallo!

Ich schubs das Thema noch mal an.

Durch die Umstellung vieler Kunden von PHP 5.x auf PHP7 gibt es einige Logbücher die sich derzeit zumüllen mit Fehlermeldung. Ich verstehe die Fehleremeldungen, keine Frage, aber wo bitte in einem Contenido, mit vielen Mandaten, befindet sich der Fehler. Hier mal ein Eintrag aus dem Logbuch:
[09-May-2017 09:25:13 Europe/Berlin] PHP Warning: Illegal offset type in /home/.../contenido/includes/frontend/include.front_content.php(754) : eval()'d code on line 169
Ich kann anhand der Meldung weder den Clienten noch das Modul identifizieren.

Meine Frage:
Besteht für die Zukunft die Möglichkeit, das Logen um die ClientID zu erweiteren bzw. wo kann ich das fürs erste selbst machen?

Wäre für eine Lösung sehr dankbar.


Gruß
Matthias

frederic.schneider_4fb
Beiträge: 967
Registriert: Do 15. Apr 2004, 17:12
Wohnort: Eschborn-Niederhöchstadt
Kontaktdaten:

Re: Logs aufbohren

Beitrag von frederic.schneider_4fb » Do 18. Mai 2017, 08:13

Du findest alle Log-relevanten Dateien im Ordner contenido/classes/log und im Speziellen die class.log.php. Obenstehende Fehlermeldung deutet auf einen Modul-Fehler hin
Frederic Schneider
Entwickler bei der four for business AG

mattmarr
Beiträge: 349
Registriert: Mo 3. Aug 2009, 14:11
Kontaktdaten:

Re: Logs aufbohren

Beitrag von mattmarr » Do 18. Mai 2017, 08:19

Hallo Frederic!
frederic.schneider_4fb hat geschrieben:
Do 18. Mai 2017, 08:13
Obenstehende Fehlermeldung deutet auf einen Modul-Fehler hin
Das es ein Modulproblem ist, ist mir klar. :wink:
Frage ist aber, bei welchem Client das Problem auftritt? Das ist leider nicht ersichtlich.


Gruß
Matthias

frederic.schneider_4fb
Beiträge: 967
Registriert: Do 15. Apr 2004, 17:12
Wohnort: Eschborn-Niederhöchstadt
Kontaktdaten:

Re: Logs aufbohren

Beitrag von frederic.schneider_4fb » Do 18. Mai 2017, 08:22

Das kannst Du, wie erwähnt, in der Log-Klasse ergänzen. Standardmäßig haben wir diese Information nicht im System. Wir debuggen allerdings auch genauso, indem wir ausprobieren, bei welchem Seitenaufruf unter welcher Konstellation ein solcher Fehler in die Log geschrieben wird
Frederic Schneider
Entwickler bei der four for business AG

mattmarr
Beiträge: 349
Registriert: Mo 3. Aug 2009, 14:11
Kontaktdaten:

Re: Logs aufbohren

Beitrag von mattmarr » Do 18. Mai 2017, 08:49

frederic.schneider_4fb hat geschrieben:
Do 18. Mai 2017, 08:22
Wir debuggen allerdings auch genauso, indem wir ausprobieren, bei welchem Seitenaufruf unter welcher Konstellation ein solcher Fehler in die Log geschrieben wird
Das Debuggen ist aber extrem schwierig bei mehreren Clienten.
Es wäre doch bestimmt eine Kleinigkeit für euch, standardmäßig im Log, die Client-ID mitzuloggen.


Gruß
Matthias

frederic.schneider_4fb
Beiträge: 967
Registriert: Do 15. Apr 2004, 17:12
Wohnort: Eschborn-Niederhöchstadt
Kontaktdaten:

Re: Logs aufbohren

Beitrag von frederic.schneider_4fb » Do 18. Mai 2017, 10:35

Ich muss mich auch korrigieren:

In Deinem Fall hilft es nichts, die Dateien im "logs"-Ordner zu manipulieren. CONTENIDO "leitet" bei solchen PHP-Fehlern lediglich die normale PHP-Fehlerausgabe in die errorlog.txt um - nicht mehr, nicht weniger. Daher ist es auch nicht möglich, ohne größere Umbauarbeiten, die Client-Id mit auszugeben
Frederic Schneider
Entwickler bei der four for business AG

mattmarr
Beiträge: 349
Registriert: Mo 3. Aug 2009, 14:11
Kontaktdaten:

Re: Logs aufbohren

Beitrag von mattmarr » Do 18. Mai 2017, 13:08

Hallo!
frederic.schneider_4fb hat geschrieben:
Do 18. Mai 2017, 10:35
Ich muss mich auch korrigieren:

In Deinem Fall hilft es nichts, die Dateien im "logs"-Ordner zu manipulieren. CONTENIDO "leitet" bei solchen PHP-Fehlern lediglich die normale PHP-Fehlerausgabe in die errorlog.txt um - nicht mehr, nicht weniger. Daher ist es auch nicht möglich, ohne größere Umbauarbeiten, die Client-Id mit auszugeben
Wo genau, in welcher Datei, wird der PHP Fehler denn geschrieben?
Ich würde mir das mal genauer anschauen. Was ich bisher gefunden habe war leider nicht aufschlussreich.


Gruss
Matthias

frederic.schneider_4fb
Beiträge: 967
Registriert: Do 15. Apr 2004, 17:12
Wohnort: Eschborn-Niederhöchstadt
Kontaktdaten:

Re: Logs aufbohren

Beitrag von frederic.schneider_4fb » Do 18. Mai 2017, 14:27

Lieber Matthias,

diese PHP-Fehlermeldungen werden in keiner spezifischen Datei von CONTENIDO geschrieben. Wie ich schrieb:
CONTENIDO sorgt lediglich dafür, dass diese PHP-Fehlermeldungen nicht in Deinem Browser ausgegeben, sondern in die errorlog.txt geschrieben werden. CONTENIDO nimmt keinerlei Einfluss auf die Art, Form oder den Inhalt dieser Fehlermeldungen. Eben deshalb ist es auch nicht mit einem Fingerstreich getan, eine Client-Id anzuhängen. PHP-Fehlermeldungen können in jeder PHP-Datei auftreten.
Frederic Schneider
Entwickler bei der four for business AG

Oldperl
Beiträge: 4137
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Kontaktdaten:

Re: Logs aufbohren

Beitrag von Oldperl » So 21. Mai 2017, 17:04

Servus,

es gibt eine Möglichkeit die von Matthias gewünschten Änderungen zu machen. PHP bietet die Möglichkeit die interne Fehlerroutine durch eine eigene Routine zu ersetzen. Dieses ist zwar auch dann nur eingeschränkt möglich, aber zumindest kann man für einige PHP-Fehler eine eigen Fehlerbehandlung machen. Auch kann man in der eigenen Routine den von PHP bereits erkannten Fehler abfragen und dann entsprechend verfahren.

Weitere Infos zum Thema findet man auf php.net :arrow: http://php.net/manual/de/function.set-error-handler.php

Gruß aus Franken

Ortwin
ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog

mattmarr
Beiträge: 349
Registriert: Mo 3. Aug 2009, 14:11
Kontaktdaten:

Re: Logs aufbohren

Beitrag von mattmarr » Do 13. Aug 2020, 08:55

Hallo @all!

Ist zwar schon ein Weilchen her aber ich habe jetzt eine not Lösung gefunden.
Zumindest wird jetzt pro Mandant ein Errorlog geschrieben und nicht mehr alles in eines.

In der Datei ROOT/data/config/.../config.misc.php folgende Änderungen vornehmen:

Suche:

Code: Alles auswählen

$cfg['php_settings']['error_log'] = $cfg['path']['contenido_logs'] . 'errorlog.txt';
Ersetzen:

Code: Alles auswählen

$cfg['php_settings']['error_log'] = $cfg['path']['contenido_logs'] . 'errorlog-' . cRegistry::getClientId() . '.txt';
Suche:

Code: Alles auswählen

$cfg['system_log']['allowed_filenames'] = array('deprecatedlog.txt', 'errorlog.txt', 'exception.txt', 'security.txt', 'setuplog.txt');
Ersetzen:

Code: Alles auswählen

$cfg['system_log']['allowed_filenames'] = array('deprecatedlog.txt', 'errorlog.txt', 'errorlog-1.txt', 'errorlog-2.txt', 'exception.txt', 'security.txt', 'setuplog.txt');
'errorlog-1.txt': Die 1 ist die ClientID des Mandanten. In meinem Beispiel sind zwei Mandanten 1 und 2 vorhanden. Habt Ihr mehr, müsst ihr entsprechend mehr werte eintragen.
Im ganzen ist es keine schöne Losung aber um den Übeltäter zu finden, der das Errorlog explordieren läßt, reicht es alle mal.
Vielleicht lässt sich daraus ja mehr bauen. :)


Gruß
Matthias

Oldperl
Beiträge: 4137
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Kontaktdaten:

Re: Logs aufbohren

Beitrag von Oldperl » Do 13. Aug 2020, 09:16

Servus Matthias,

schön, das Du eine Lösung gefunden hast. Ich würde nur vorschlagen es in einer lokalen Konfigurationsdatei (config.local.php) zu machen. Diese würde beim Update nicht überschrieben, und sollte genauso funktionieren.

Gruß aus Franken

Ortwin
ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog

mattmarr
Beiträge: 349
Registriert: Mo 3. Aug 2009, 14:11
Kontaktdaten:

Re: Logs aufbohren

Beitrag von mattmarr » Do 13. Aug 2020, 09:20

Hallo Ortwin,
Oldperl hat geschrieben:
Do 13. Aug 2020, 09:16
schön, das Du eine Lösung gefunden hast.
Hat auch lange genug gedauert. :)
Oldperl hat geschrieben:
Do 13. Aug 2020, 09:16
Ich würde nur vorschlagen es in einer lokalen Konfigurationsdatei (config.local.php) zu machen. Diese würde beim Update nicht überschrieben, und sollte genauso funktionieren.
Wie schon geschrieben, es ist keine schöne Lösung. Erstmal nur als Behelf. Was in Zukunft daraus entsteht, mal schauen.


Gruß
Matthias

Oldperl
Beiträge: 4137
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Kontaktdaten:

Re: Logs aufbohren

Beitrag von Oldperl » Do 13. Aug 2020, 11:09

mattmarr hat geschrieben:
Do 13. Aug 2020, 09:20
Was in Zukunft daraus entsteht, mal schauen.
Klar, man wird sehen, zumindest habe ich es bei meiner CL mal notiert, wobei die sowieso ein errorlog im Mandanten selbst bekommt, und einen entsprechenden Backendbereich, so in der Art wie mein Plugin phpBO Client Log für die 4.9 :arrow: viewtopic.php?f=99&t=35462

Gruß aus Franken

Ortwin
ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog

Antworten