Logging in einer Extension

  • 0 x
    8 Beiträge
    0 Hilfreiche Beiträge
    08. 05. 2012, 16:13

    Hallo,
    wie realisiere und steuere ich innerhalb einer Extbase - Extension am besten das Loggen von Debug Infos und Fehlern?

    Aktuell habe ich die Extension "devlog" im Einsatz und schreibe meine Log-Einträge per [b]t3lib_div::devLog()[/b] : Das funktioniert soweit auch wunderbar. :)
    ...wenn ich allerdings wie bei der Funktion t3lib_div::devLog() beschrieben die Konstante TYPO3_DLOG abfrage, wird nichts geloggt, obwohl [SYS][enable_DLOG] = 1 per Install Tool gesetzt ist:

    1. if (TYPO3_DLOG) t3lib_div::devLog($msg, $extKey); //Geht nicht???

    Meine Fragen:
    [b]1. [/b]Funktioniert die Abfrage von TYPO3_DLOG im Controler/Repository einer Extbase-Extension nicht?
    [b]2. [/b]Wie steuere ich das Loggen am besten innerhalb meiner Extension? Ich möchte die Option haben, es für meine Extension aus-/einschalten zu können.
    Also wo definiere ich am besten innerhalb der Extbase-Extension eine Variable oder Konstante, die dann von allen Controllern und Repositories innerhalb der Extension abgefragt werden kann?

    [b]zu 2.[/b]: Mein Lösungsansatz war eine Variable per Typoscript/Flexform setzen und dann per $this->settings['general']['myShowDebugInfosVar'] abzufragen - Das funktioniert auch innerhalb der Controller, aber (bis jetzt) nicht in den Repositories.

    Hoffe mir kann jemand weiterhelfen. :D

    Schöne Grüße
    Michael


  • 1
  • freshman17 freshman1...
    Sternenflotten-Admiral
    0 x
    218 Beiträge
    2 Hilfreiche Beiträge
    09. 05. 2012, 00:04

    Hi,

    zu Punkt 1 kann ich leider nichts beitragen. Punkt 2 ist einfach. Wenn du die Repository aus dem Controller instanzierst oder von dort aufrufst, dann kannst du die Settings einfach übergeben. Falls ein Aufruf ausserhalb des Controllers geschieht, kommst du an das TypoScript über den ConfigurationManager ran:

    1. // Methode
    2. Tx_Extbase_Configuration_ConfigurationManager::getConfiguration($configurationType, ...);
    3. // Parameter
    4. Tx_Extbase_Configuration_ConfigurationManagerInterface {
    5. const CONFIGURATION_TYPE_FRAMEWORK = 'Framework';
    6. const CONFIGURATION_TYPE_SETTINGS = 'Settings';
    7. const CONFIGURATION_TYPE_FULL_TYPOSCRIPT = 'FullTypoScript';
    8. }

    Für die Konvertierung kannst du folgend Klasse benutzen:
    1. Tx_Extbase_Utility_TypoScript

    bzw. bei neueren Versionen diese:
    1. Tx_Extbase_Service_TypoScriptService

    Gruß

  • 0 x
    8 Beiträge
    0 Hilfreiche Beiträge
    09. 05. 2012, 12:41

    Hallo,
    vielen Dank für Deine Antwort. :D Da ich die Repositories von den Controllern aus aufrufe, werde ich wie von Dir vorgeschlagen, die Settings dann jeweils als Parameter übergeben.
    Danke auch für die Beschreibung, wie ich im Repository per "ConfigurationManager" auf das TypoScript zugreifen kann.

    @all: Weiß noch jemand, ob das mit TYPO3_DLOG eigentlich funktionieren sollte (siehe Frage 1 oben)?
    ...und noch eine neue Frage - ich nenne sie drittens :D:
    [b]3.[/b] Wie macht Ihr das mit dem Logging in einer Extension? Auch unter Einsatz von Ext "devlog" (letzte Version v2.9.2 - 21.12.2009) - oder gibt's was noch besseres?

    Schöne Grüße
    Michael

  • 1