T3DD11-Workshop
Version 2 (Steffen Müller, 2011-07-11 22:16)
| 1 | 1 | h1. T3DD11-Workshop |
|
|---|---|---|---|
| 2 | 1 | ||
| 3 | 1 | There was a workshop about TYPO3 Logging at the TYPO3 Developer Days 2011 in Sursee. About 20 participants worked together for half a day to analyze, understand and improve Logging in TYPO3. |
|
| 4 | 1 | The workshop was very successful and it turned out to be the kickoff for the first core project for the release of TYPO3 version 4.7. |
|
| 5 | 1 | ||
| 6 | 1 | h2. Why Logging Improvements? About the problem we face with Logging in TYPO3 |
|
| 7 | 1 | ||
| 8 | 1 | Excerpt from the Workshop abstract: |
|
| 9 | 2 | Steffen Müller | bq. _Logging is a fundamental feature of any IT system. TYPO3 has various kinds of logging features, whereas it's characteristics are determined by different factors: User roles, logging purpose, targets, APIs etc. The logging features in TYPO3 have grown over the years and seem to be scattered all over the core and various extensions. Therefore it is hard even for the experienced users to understand and keep track of it._ |
| 10 | 1 | ||
| 11 | 1 | h2. Results from the workshop |
|
| 12 | 1 | ||
| 13 | 1 | h3. Analysis of the actual Logging implementation |
|
| 14 | 1 | ||
| 15 | 1 | We investigated the most common Logging possibilities and discussed their pros and cons: |
|
| 16 | 1 | ||
| 17 | 1 | h4. BE LOG |
|
| 18 | 1 | ||
| 19 | 1 | API |
|
| 20 | 1 | <pre> |
|
| 21 | 1 | + THERE IS NO API, only plain SQL queries |
|
| 22 | 1 | + Configurable log levels (systemLogLevel in Install Tool) |
|
| 23 | 1 | ||
| 24 | 1 | - Mixing information target groups |
|
| 25 | 1 | - no way to configure targets (mail, etc) |
|
| 26 | 1 | - no localization |
|
| 27 | 1 | - no event triggers (no push, just pull) |
|
| 28 | 1 | </pre> |
|
| 29 | 1 | ||
| 30 | 1 | UI |
|
| 31 | 1 | <pre> |
|
| 32 | 1 | + Filters |
|
| 33 | 1 | + Overview of TYPO3 |
|
| 34 | 1 | ||
| 35 | 1 | - Usability of the Backend module |
|
| 36 | 1 | - Insufficient information / Helpless information |
|
| 37 | 1 | - Separation/Right Management |
|
| 38 | 1 | </pre> |
|
| 39 | 1 | ||
| 40 | 1 | h4. WEB > INFO > LOG |
|
| 41 | 1 | ||
| 42 | 1 | It displays parts of BE log, but with a very limited feature set. |
|
| 43 | 1 | ||
| 44 | 1 | <pre> |
|
| 45 | 1 | - Filters |
|
| 46 | 1 | - No configuration or not known to us. |
|
| 47 | 1 | </pre> |
|
| 48 | 1 | ||
| 49 | 1 | h4. DevLog |
|
| 50 | 1 | ||
| 51 | 1 | API (t3lib_div::devLog()) |
|
| 52 | 1 | <pre> |
|
| 53 | 1 | + Way to give additional information in array |
|
| 54 | 1 | + Add own view, like done with fire_devlog:http://forge.typo3.org/projects/extension-fire_devlog Extension for firebug |
|
| 55 | 1 | + Works without xDebug |
|
| 56 | 1 | + Easy to use for developers |
|
| 57 | 1 | ||
| 58 | 1 | - Not streamlined with rest of the logging API |
|
| 59 | 1 | - Path to class not logged/shown |
|
| 60 | 1 | - DLOG constant should be part of devLog() and is confusing |
|
| 61 | 1 | </pre> |
|
| 62 | 1 | ||
| 63 | 1 | UI (devlog Extension - since this is the most popular one) |
|
| 64 | 1 | <pre> |
|
| 65 | 1 | + Filter by extension |
|
| 66 | 1 | ||
| 67 | 1 | - Debug array information is shown inline, bad with big data sets |
|
| 68 | 1 | </pre> |
|
| 69 | 1 | ||
| 70 | 1 | h4. Deprecation Log |
|
| 71 | 1 | ||
| 72 | 1 | <pre> |
|
| 73 | 1 | + Educates developers |
|
| 74 | 1 | + Helps developers to keep code up to date |
|
| 75 | 1 | ||
| 76 | 1 | - Repeats the same message |
|
| 77 | 1 | - Flooding |
|
| 78 | 1 | - Yet another Logging system |
|
| 79 | 1 | </pre> |
|
| 80 | 1 | ||
| 81 | 1 | h4. BE Console Log (Debug Console) |
|
| 82 | 1 | ||
| 83 | 1 | API |
|
| 84 | 1 | <pre> |
|
| 85 | 1 | + Allows debugging of ExtJS in BE |
|
| 86 | 1 | + Easy to use for BE debugging |
|
| 87 | 1 | + Separated from Page markup |
|
| 88 | 1 | </pre> |
|
| 89 | 1 | ||
| 90 | 1 | UI |
|
| 91 | 1 | <pre> |
|
| 92 | 1 | + Stays open although you reload |
|
| 93 | 1 | ||
| 94 | 1 | - Stays open although you reload |
|
| 95 | 1 | - Flooding |
|
| 96 | 1 | - Where to configure? |
|
| 97 | 1 | </pre> |
|
| 98 | 1 | ||
| 99 | 1 | h4. System Log (t3lib_div::sysLog()) |
|
| 100 | 1 | ||
| 101 | 1 | API |
|
| 102 | 1 | <pre> |
|
| 103 | 1 | + allows to log to several targets (file, syslogd, email) |
|
| 104 | 1 | + no_cache trigger detection |
|
| 105 | 1 | ||
| 106 | 1 | - BE log cannot be chosen as a target |
|
| 107 | 1 | </pre> |
|
| 108 | 1 | ||
| 109 | 1 | UI |
|
| 110 | 1 | <pre> |
|
| 111 | 1 | - No UI at all |
|
| 112 | 1 | </pre> |
|
| 113 | 1 | ||
| 114 | 1 | h4. admPanel |
|
| 115 | 1 | ||
| 116 | 1 | h4. Link Validator |
|
| 117 | 1 | ||
| 118 | 1 | h4. Query Logging |
|
| 119 | 1 | ||
| 120 | 1 | h4. Reports module in the Backend |
|
| 121 | 1 | ||
| 122 | 2 | Steffen Müller | h4. caretaker Extension |
| 123 | 2 | Steffen Müller | |
| 124 | 2 | Steffen Müller | (not discussed, to be done later) |
| 125 | 2 | Steffen Müller | |
| 126 | 2 | Steffen Müller | h3. Challenges we face with Logging in TYPO3 |
| 127 | 2 | Steffen Müller | |
| 128 | 2 | Steffen Müller | * Complexity |
| 129 | 2 | Steffen Müller | * Insufficient documentation: Target group specific tutorials (developer, admins, ...), Guides, Best Practices and documentation how Logging works in general are yet missing |
| 130 | 2 | Steffen Müller | * Information overload |
| 131 | 2 | Steffen Müller | * Insufficient possibilities to filter, order and cluster Logging events |
| 132 | 2 | Steffen Müller | * Difficulties to realize common Logging strategies |
| 133 | 2 | Steffen Müller | * Insufficient, unstructured and confusing configuration options |
| 134 | 2 | Steffen Müller | * 3rd party integration |
| 135 | 2 | Steffen Müller | * Confusion: too many logging APIs which work almost the same way |
| 136 | 2 | Steffen Müller | |
| 137 | 2 | Steffen Müller | h3. Aspects of Logging |
| 138 | 2 | Steffen Müller | |
| 139 | 2 | Steffen Müller | * Logging purpose (Why...?) |
| 140 | 2 | Steffen Müller | * Logging target (Where/Who...?) |
| 141 | 2 | Steffen Müller | * Logging severity (How harmfull is...?) |
| 142 | 2 | Steffen Müller | * Logging implementations (What tool/method...?) |
| 143 | 2 | Steffen Müller | * Logging documentation (How to...?) |
| 144 | 2 | Steffen Müller | * Logging events (What to log?) |
| 145 | 2 | Steffen Müller | * 3rd party Logging systems (How to integrate...?) |