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...?)