Zum Inhalt springen

Selbst in sys_log loggen!

Erstellt am 5. März 2007 · 10 Antworten · letzte Antwort am 5. März 2007

Tags: Frage

fez ·

Hallo miteinander!
Gibt es eine - standard - Funktion um bei eigenen Extensions was in die Tabelle sys_log zu schreiben?
Das is nämlich bei meinem BackEnd Modul relativ wichtig...

ein "t3lib_div::devLog('Deleted this and that', 'myExtensionKey');" hat leider keinen Erfolg... Hab aber sonst nichts zu dem Thema gefunden...

Irgendwelche Ideen?

FEZ

jenses ·

"The idea is that this function is only a wrapper for external extensions which can set a hook which will be allowed to handle the logging of the information to any format they might wish and with any kind of filter they would like."

Auf gut deutsch:
Erst benötigst du in deiner Extensionklasse eine Funktion, die diesen Hook benutzt.
In dieser Funktion mußt du dich selber um das logging kümmern (sprich: die gewünschten Daten in die DB schreiben).
Wozu nun dieser Umweg gut sein soll,
erschließt sich mir nicht wirklich. #paralyzed#

fez ·

Tja, da schau ich jetzt grad mal wie dein Avatar.... :o

Dem check ich ja garned...
also einfach eine eigen funktion und in der dann selbst per SQL reinmachen????? Oder wie oder was???

Muss zugeben, dass ich mit Hooks noch GAR-NICHTS gemacht hab!

FEZ

steffenk ·

ich muss jenses da widersprechen. man kann mit der Funktion dev_log loggen.

* Developer log; This should be implemented around the source code, both frontend and backend, logging everything from the flow through an application, messages, results from comparisons to fatal errors.
* The result is meant to make sense to developers during development or debugging of a site.
* The idea is that this function is only a wrapper for external extensions which can set a hook which will be allowed to handle the logging of the information to any format they might wish and with any kind of filter they would like.
* If you want to implement the devLog in your applications, simply add lines like:
* if (TYPO3_DLOG) t3lib_div::devLog('[write message in english here]', 'extension key');

allerdings braucht man auch eine Extension, um das dann zu lesen, und es gibt einen 3.Parameter. (ich meine was wie cc_devlog, wenn ich mich recht erinner)

fez ·

Tja, auch das hilf mir nix, da auch mit devLog() nix in der sys_log Tablle landet und das ist, was ich brauch!

fez ·

Is klar!

Ich will ja NED debuggen SONDERN loggen (und zwar in die Tabelle sys_log, damit ich es unter "log" im menu sehe!)... Das debuggen kam ned von mir ;-)

FEZ

jenses ·

Hmmh, also ich sehe hier nix, was irgendwie nach einem Schreibvorgang aussieht:

	function devLog($msg, $extKey, $severity=0, $dataVar=FALSE)	{
		global $TYPO3_CONF_VARS;

		if (is_array($TYPO3_CONF_VARS['SC_OPTIONS']['t3lib/class.t3lib_div.php']['devLog']))	{
			$params = array('msg'=>$msg, 'extKey'=>$extKey, 'severity'=>$severity, 'dataVar'=>$dataVar);
			$fakeThis = FALSE;
			foreach($TYPO3_CONF_VARS['SC_OPTIONS']['t3lib/class.t3lib_div.php']['devLog'] as $hookMethod)	{
				t3lib_div::callUserFunction($hookMethod,$params,$fakeThis);
			}
		}
	}

Habe mich nicht wirklich mit dem Hook-Konzept beschäftigt,
aber für mich sieht das hier so aus, daß in einer Schleife die zu loggenden Daten an eine Userfunction übergeben werden.
Diese Funktion ist also die eigentlich loggende.
Oder versteh ich da was falsch ?
Ich lerne ja gerne Neues dazu 😉

jenses ·
fez schrieb

Ich will ja NED debuggen SONDERN loggen (und zwar in die Tabelle sys_log, damit ich es unter "log" im menu sehe!)...

Hast du es hiermit mal versucht:
"* If you want to implement the sysLog in your applications, simply add lines like:
* t3lib_div::sysLog('[write message in English here]', 'extension key');"
?

steffenk ·

um das Geheimnis mal zu lüften:

Die Methode von fez ist ja fürs BE gedacht. In einer Ext möchte man halt auch FE-Sachen loggen.
Wie Jenses schon gesagt hat, braucht es einen Hook, und der wird von folgenden Extensions geliefert:
cc_devlog oder
rlmp_filedevlog

Je nach Extension wird dann in DB oder Datei geloggt.