1Logstalgia(1) General Commands Manual Logstalgia(1)
2
3
4
6 Logstalgia - a web server access log visualization tool
7
9 logstalgia [options] logfile
10
12 logstalgia is a visualization tool that replays or streams web server
13 access logs as a retro arcade game simulation.
14
16 logstalgia's display is rendered using OpenGL and requires a 3D accel‐
17 erated video card to run.
18
19 Logstalgia supports several standardized access.log formats used by web
20 servers such as Apache and Nginx (see 'SUPPORTED LOG FORMATS' below).
21
22 As logstalgia is designed to playback logs in real time you will need a
23 log from a fairly busy webserver to achieve interesting results (eg
24 100s of requests each minute).
25
27 -f Fullscreen.
28
29 -WIDTHxHEIGHT
30 Set the window size. If -f is also supplied, will attempt to set
31 the video mode to this also. Add ! to make the window non-resiz‐
32 able.
33
34 --screen SCREEN
35 Set the number of the screen to display on.
36
37 --window-position XxY
38 Initial window position on your desktop which may be made up of
39 multiple monitors.
40
41 This will override the screen setting so don't specify both.
42
43 --frameless
44 Frameless window.
45
46 --title TITLE
47 Set a title.
48
49 -b, --background
50 Background colour in hex.
51
52 -x --full-hostnames
53 Show full request ip/hostname.
54
55 -s, --simulation-speed
56 Simulation speed. Defaults to 1 (1 second-per-second).
57
58 -p, --pitch-speed
59 Speed balls travel across the screen (defaults to 0.15).
60
61 -u, --update-rate
62 Page Summary update speed. Defaults to 5 (5 seconds).
63
64 -g name,(HOST|URI|CODE)=regex[,SEP=chars][,MAX=n][,ABBR=n],per‐
65 cent[,colour]
66 Creates a new named summarizer group for requests for which a
67 specified attribute (HOST, URI or response CODE) matches a regu‐
68 lar expression. Percent specifies a vertical percentage of
69 screen to use.
70
71 SEP=chars can specify a list of separator characters (e.g. /) to
72 split on. The default separator is /.
73
74 MAX=n specifies the max depth into the path to be displayed.
75 (e.g. MAX=1 would show only root directory names of paths). By
76 default there is 0 (no limit).
77
78 ABBR=n specifies the minimum depth at which to allow partially
79 abbreviated strings. The default is 0 (allow). -1 to disallow.
80
81 A colour may optionally be supplied in hexadecimal format (eg
82 FF0000 for red) which will be applied to all labels and request
83 balls matched to the group.
84
85 Examples:
86
87 -g "HTML,URI=html?$,30"
88 -g "Lan,HOST=^192,30"
89 -g "Success,CODE=^[23],30"
90
91 If no groups are specified, the default groups are Images (image
92 files), CSS (.css files) and Scripts (.js files).
93
94 If there is enough space remaining a catch-all group 'Misc' will
95 appear as the last group.
96
97 --address-separators CHARS
98 List of address separator characters. Defaults to '.:'.
99
100 --address-max-depth DEPTH
101 Maximum depth to display in address summarizer. 0 for no maxi‐
102 mum.
103
104 --address-abbr-depth DEPTH
105 Minimum abbreviation depth of address summarizer. 0 to always
106 allow abbreviations, -1 to never abbreviate.
107
108 --path-separators CHARS
109 Default list of path separator characters. Defaults to /.
110
111 --path-max-depth DEPTH
112 Default maximum path depth shown in the summarizer. 0 for no
113 maximum.
114
115 --path-abbr-depth DEPTH
116 Default minimum path abbreviation depth. 0 to always allow
117 abbreviations, -1 to never abbreviate.
118
119 --paddle-mode MODE
120 Paddle mode (pid, vhost, single).
121
122 vhost - separate paddle for each virtual host in the log file.
123
124 pid - separate paddle for each process id in the log file.
125
126 single - single paddle (the default).
127
128 --paddle-position POSITION
129 Paddle position as a fraction of the view width (0.25 - 0.75).
130
131 --display-fields REQUEST_FIELDS
132 List of one or more request fields that are shown when the user
133 hovers the mouse over an individual request:
134
135 path - the path of the resource requested
136 hostname - hostname or IP address
137 response_size - size of the response in bytes
138 response_code - response code
139 method - method
140 protocol - protocol
141 timestamp - timestamp of request
142 referrer - referrer URL of the request
143 user_agent - user agent
144 vhost - virtual host name
145 log_entry - full log entry
146 pid - the pid of the instance that handled the
147 request
148
149 Separate multiple fields with commas (eg "path,hostname")
150
151 --sync Read from STDIN, ignoring entries before the current time.
152
153 --from, --to "YYYY-MM-DD hh:mm:ss +tz"
154 Show entries from a specific time period.
155
156 If a time zone offset isn't specified the local time zone is
157 used.
158
159 Example accepted formats:
160
161 "2012-06-30"
162 "2012-06-30 12:00"
163 "2012-06-30 12:00:00 +12"
164
165 --start-position POSITION
166 Begin at some position in the log file (between 0.0 and 1.0).
167
168 --stop-position POSITION
169 Stop at some position.
170
171 --no-bounce
172 No bouncing.
173
174 --hide-response-code
175 Hide response code.
176
177 --hide-paddle
178 Hide paddle.
179
180 --hide-paddle-tokens
181 Hide paddle tokens shown in multi-paddle modes.
182
183 --hide-url-prefix
184 Hide URL protocol and hostname prefix of requests.
185
186 --disable-auto-skip
187 Disable automatic skipping of empty time periods.
188
189 --disable-progress
190 Disable the progress bar.
191
192 --disable-glow
193 Disable the glow effect.
194
195 --font-size SIZE
196 Font size.
197
198 --glow-duration
199 Duration of the glow (between 0.0 and 1.0).
200
201 --glow-multiplier
202 Adjust the amount of glow.
203
204 --glow-intensity
205 Intensity of the glow.
206
207 -o, --output-ppm-stream FILE
208 Write frames as PPM to a file ('-' for STDOUT).
209
210 -r, --output-framerate FPS
211 Framerate of output (used with --output-ppm-stream).
212
213 --load-config CONFIG_FILE
214 Load a config file.
215
216 --save-config CONFIG_FILE
217 Save a config file with the current options.
218
219 --detect-changes
220 Automatically reload config file when it is modified.
221
222 logfile
223 The path to the access log file to read or '-' if you wish to
224 supply log entries via STDIN.
225
226
228 Watch an example access.log using the default settings:
229
230 logstalgia /usr/share/logstalgia/example.log
231
232 Watch the live access.log, starting from the most recent batch of
233 entries in the log (requires tail). Note than '-' at the end is
234 required for logstalgia to know it needs to read from STDIN:
235
236 tail -f /var/log/apache2/access.log | logstalgia -
237
238 To follow the log in real time, use the --sync option. This will start
239 reading from the next entry received on STDIN:
240
241 tail -f /var/log/apache2/access.log | logstalgia --sync
242
243 Watch a remote access.log via ssh:
244
245 ssh user@example.com tail -f /var/log/apache2/access.log | logstal‐
246 gia --sync
247
248
250 Logstalgia supports the following standardized log formats used by web
251 servers like Apache and Nginx:
252
253 NCSA Common Log Format (CLF)
254 "%h %l %u %t \"%r\" %>s %b"
255
256 NCSA Common Log Format with Virtual Host
257 "%v %h %l %u %t \"%r\" %>s %b"
258
259 NCSA extended/combined log format
260 "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\""
261
262 NCSA extended/combined log format with Virtual Host
263 "%v %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-
264 agent}i\""
265
266 The process id (%P), or some other identifier, may be included as an
267 additional field at the end of the entry. This can be used with '--pad‐
268 dle-mode pid' where a separate paddle will be created for each unique
269 value in this field.
270
271
273 Logstalgia now supports a pipe ('|') delimited custom log file format:
274
275 timestamp - unix timestamp of the request date.
276 hostname - hostname of the request
277 path - path requested
278 response_code - the response code from the webserver (eg 200)
279 response_size - the size of the response in bytes
280
281 The following are optional:
282
283 success - 1 or 0 to indicate if successful
284 response_colour - response colour in hexidecial (#FFFFFF) format
285 referrer url - the referrer url
286 user agent - the user agent
287 virtual host - the virtual host (to use with --paddle-mode vhost)
288 pid - process id or some other identifier (--paddle-mode
289 pid)
290
291 If success or response_colour are not provided, they will be derived
292 from the response_code using the normal HTTP conventions (code < 400 =
293 success).
294
295
297 See the guide on the homepage for examples of recording videos with
298 Logstalgia:
299
300 https://github.com/acaudwell/Logstalgia/wiki/Videos
301
302
304 The time shown in the top left of the screen is set initially from the
305 first log entry read and is incremented according to the simulation
306 speed (-s).
307
308 The counter in the bottom right hand corner shows the number of
309 requests displayed since the start of the current session.
310
311 Pressing space at any time will pause/unpause the simulation. While
312 paused you may use the mouse to inspect the detail of individual
313 requests.
314
315 You can click on summarizer group entries on the left and right side of
316 the screen to filter to requests matching that entry. Click on the fil‐
317 ter description to remove the filter.
318
319 Interactive keyboard commands:
320
321 (q) Debug Information
322 (c) Displays Logstalgia logo
323 (n) Jump forward in time to next log entry.
324 (+-) Adjust simulation speed.
325 (<>) Adjust pitch speed.
326 (F5) Reload config
327 (F11) Window frame toggle
328 (F12) Screenshot
329 (Alt+Enter) Fullscreen toggle
330 (Ctrl+S) Save config
331 (Home/End) Adjust address summarizer maximum depth
332 (Page Up/Down) Adjust group summarizer maximum depth
333 (Ctrl+Home/End) Adjust address summarizer abbreviation depth
334 (Ctrl+Page Up/Down) Adjust group summarizer abbreviation depth
335 (ESC) Quit
336
337
339 Written by Andrew Caudwell
340
341 Project Homepage: http://logstalgia.io
342
344 Copyright (C) 2008 Andrew Caudwell (acaudwell@gmail.com)
345
346 This program is free software; you can redistribute it and/or
347 modify it under the terms of the GNU General Public License
348 as published by the Free Software Foundation; either version
349 3 of the License, or (at your option) any later version.
350
351 This program is distributed in the hope that it will be useful,
352 but WITHOUT ANY WARRANTY; without even the implied warranty of
353 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
354 GNU General Public License for more details.
355
356 You should have received a copy of the GNU General Public License
357 along with this program. If not, see <http://www.gnu.org/licenses/>.
358
360 Catalyst IT (catalyst.net.nz)
361
362 For supporting the development and promotion of Logstalgia!
363
364
365
366 Logstalgia(1)