tlog-play(8)
๐ tlog-play(8) โ the System Manager's Manual glow-up ๐
okay bestie, so this is tlog-play, part of the tlog family, and it lives in section 8 of the System Manager's Manual. Think of it as the rewind button for your terminal. Let's get into it ๐
โจ NAME โจ
tlog-play โ play back terminal I/O recorded by tlog-rec(8)
๐ฆ SYNOPSIS ๐ฆ
tlog-play [OPTION...]
๐ DESCRIPTION ๐
So tlog-play is the playback program for terminal I/O that got recorded with tlog-rec(8). It re-plays the recording on whatever terminal you run it under, and here's the tea: it can't change its own size. So for playback to look right, your playback terminal size has to match the recorded terminal size. No cap, that's just how it is ๐ญ
tlog-play pulls its parameters from the system-wide config file /etc/tlog/tlog-play.conf, and you can override any of that with the command-line options listed below. Iconic behaviour, honestly.
โญ OPTIONS โญ
๐ธ General options ๐ธ
-h,--helpโ prints a command-line usage message and then dips. bye โ๏ธ-v,--versionโ spits out version info and exits.--configurationโ dumps the program configuration as JSON and exits. very demure, very mindful.-s,--speed=NUMBERโ sets the playback speed multiplier to NUMBER.- NUMBER is a floating-point number, and the playback speed gets multiplied by it. You can literally adjust this mid-playback, it's giving live DJ ๐ง
- Value minimum:
0
-f,--followโ wait for new messages and play them back.- If you specify this, when playback hits the end of the recorded session it just... waits ๐ซถ, and when new messages get added it plays them as they show up. obsessive follow energy.
-g,--goto=STRINGโ fast-forward to STRING time (start/end/HH:MM:SS.sss).- STRING is a logical location, or a time to fast-forward the recording to. It can be the string
"start", the string"end", or a timestamp formatted asHH:MM:SS.sss, where any part can be left out to mean zero. yes bestie, you can absolutely just skip to the good part โจ
- STRING is a logical location, or a time to fast-forward the recording to. It can be the string
-p,--pausedโ start playback paused.- If specified, playback starts out in a paused state. frozen. statue. ๐
-r,--reader=STRINGโ use the STRING log reader (file/journal/es, defaultfile).- STRING is the type of "log reader" used for retrieving log messages. The reader you pick has to be configured with its own dedicated parameters, so don't forget those.
- Value should be one of:
"file","journal","es"
--persistโ ignore the quit key and signals from the keyboard.- If specified, ignore any keyboard-generated signals and the quit key. it simply will not be stopped ๐ค
--laxโ ignore missing (dropped) log messages.- If specified, ignore missing (dropped, or lost) log messages. Otherwise it reports an error and aborts when a message is missing. so like, strict mode is the default, keep that in mind.
๐ File reader options ๐
-i,--file-path=FILEโ read the log from the FILE file.- FILE is the path to the file the
"file"reader should read logs from.
- FILE is the path to the file the
-m,--file-match=STRINGโ playback the explicit recording id specified in STRING.- STRING is the recording id of the recording the
"file"reader should seek to for playback.
- STRING is the recording id of the recording the
๐ Elasticsearch reader options ๐
--es-baseurl=STRINGโ Elasticsearch URL without query or fragment parts.- STRING is the base URL to request Elasticsearch through. Should not contain query (
?...) or fragment (#...) parts.
- STRING is the base URL to request Elasticsearch through. Should not contain query (
--es-query=STRINGโ Elasticsearch query.- STRING is the query string to send to Elasticsearch.
--es-verboseโ enable verbose output on the Elasticsearch HTTP client.- If specified, enable verbose output on the Elasticsearch HTTP client. it's giving loud and proud ๐ข
๐๏ธ Systemd journal reader options ๐๏ธ
-S,--journal-since=SECONDSโ start searching the journal at SECONDS since epoch.- SECONDS is the number of seconds since epoch to seek to before searching for the first matching log entry.
- Value minimum:
0
-U,--journal-until=SECONDSโ stop searching the journal at SECONDS since epoch.- SECONDS is the number of seconds since epoch at which searching for log entries should stop.
- Value minimum:
0
-M,--journal-match=STRINGโ add STRING to the journal match symbol list.- Each STRING specifies a journal match symbol: either a name-value pair, according to
sd_journal_add_match(3), or an"OR"or"AND"string signifying disjunction or conjunction, as withsd_journal_add_disjunction(3)andsd_journal_add_conjunction(3).
- Each STRING specifies a journal match symbol: either a name-value pair, according to
-N,--journal-namespace=STRINGโ search for the records in the STRING namespace only.- STRING is the Specifies a specific journal namespace to use.
๐ฎ CONTROLS ๐ฎ
You can drive playback with these keys, bestie. keyboard main character energy ๐
SPACE,pโ pause/resume playback.}โ double the playback speed. Maximum is16x.{โ halve the playback speed. Minimum is1/16x.BACKSPACEโ reset playback to normal,1xspeed..โ output the next packet immediately, without delay, regardless if paused or not. Press it when paused to step through the recording. Press it once to skip a long pause. Hold it to skip through the recording at constant speed (the keyboard repeat rate).Gโ fast-forward the recording to the end, or to a specified time. Works while playing and on pause. You can specify the time by typing in a timestamp before pressing'G'. The timestamp should follow the format of the-g/--gotooption value, but without the fractions of a second. The command has no effect if the specified time location has already been reached.- E.g. pressing just
'G'would fast-forward to the end, which is useful with following enabled. Pressing'3','0','G'(typing"30G") would fast-forward to 30 seconds from the start of the recording. Typing"30:00G"would fast-forward to 30 minutes, and so would"30:G", and"1800G". Typing"2::G"would fast-forward to two hours into the recording, the same as"120:G"and"7200G".
- E.g. pressing just
qโ stop playing and quit.
๐๏ธ FILES ๐๏ธ
/etc/tlog/tlog-play.confโ The system-wide configuration file
๐ BUGS ๐
okay so this part is important, listen up. Recordings can include control sequences attempting to communicate with the terminal, and the playback terminal would dutifully reply to them. tlog-play tries to filter these responses out, but since it's not a full terminal emulator itself, and since there's a great variety of such control sequences, it can sometimes fail, and interpret some of these as the playback control keys described above, with corresponding effects. ๐ซ
This is going to be fixed in future releases, possibly by embedding a proper terminal emulator in tlog-play. For now, most recordings would reproduce correctly, but some might exhibit erratic behavior, and it is possible to e.g. make a recording which would skip (hide) a part of itself on playback. However, there are other, easier ways to hide actions on a terminal, of course.
bestie. do not rely on this to hide your secrets. it's not even good at hiding them ๐
๐ EXAMPLES ๐
Play back contents of a file written with tlog-rec's "file" writer:
tlog-play -r file --file-path=recording.log
Play back a recording from Journal:
tlog-play -r journal -M TLOG_REC=6071524bb44d403991a00413ab7c8596-53bd-378c5d9
Play back a recording from Elasticsearch:
tlog-play -r es --es-baseurl=http://localhost:9200/tlog/tlog/_search --es-query=session:121
๐ SEE ALSO ๐
tlog-play.conf(5), tlog-rec(8)
๐ซถ AUTHOR ๐ซถ
Nikolai Kondrashov <spbnick@gmail.com>
and that's the whole page, no notes ๐ this was brought to you by Tlog, dated March 2016, and yeah the date is giving vintage but the vibes are forever. mwah ๐โจ
๐ฆ where this page comes from
- centos-stream 10: tlog 14-4.el10 ยท GPL-2.0-or-later
- centos-stream 9: tlog 14-1.el9 ยท GPLv2+
- centos-stream 9: tlog 14-1.el9 ยท GPLv2+
- debian bookworm: tlog 12.1-2 ยท GPL-2.0-or-later
- fedora 43: tlog 14-6.fc43 ยท GPL-2.0-or-later
- fedora 43: tlog 14-6.fc43 ยท GPL-2.0-or-later
- fedora 44: tlog 14-7.fc44 ยท GPL-2.0-or-later
- fedora 44: tlog 14-7.fc44 ยท GPL-2.0-or-later
- ubuntu jammy: tlog 12-1 ยท GPL-2.0-or-later
- ubuntu noble: tlog 14-1build2 ยท GPL-2.0-or-later
- ubuntu questing: tlog 14-2
- ubuntu resolute: tlog 14-2.1 ยท GPL-2.0-or-later
- ubuntu stonking: tlog 14-3 ยท GPL-2.0-or-later
- Copyright (C) 2016 Red Hat
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms