Files
simple-log/scrbl/simple-log.html
2026-04-08 23:12:20 +02:00

11 lines
24 KiB
HTML

<!DOCTYPE html>
<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"/><meta name="viewport" content="width=device-width, initial-scale=0.8"/><title>Logging</title><link rel="stylesheet" type="text/css" href="scribble.css" title="default"/><link rel="stylesheet" type="text/css" href="racket.css" title="default"/><link rel="stylesheet" type="text/css" href="manual-style.css" title="default"/><link rel="stylesheet" type="text/css" href="manual-racket.css" title="default"/><script type="text/javascript" src="scribble-common.js"></script><script type="text/javascript" src="manual-racket.js"></script></head><body id="scribble-racket-lang-org"><div class="tocset"><div class="tocview"><div class="tocviewlist tocviewlisttopspace"><div class="tocviewtitle"><table cellspacing="0" cellpadding="0"><tr><td style="width: 1em;"><a href="javascript:void(0);" title="Expand/Collapse" class="tocviewtoggle" onclick="TocviewToggle(this,&quot;tocview_0&quot;);">&#9658;</a></td><td></td><td><a href="" class="tocviewselflink" data-pltdoc="x">Logging</a></td></tr></table></div><div class="tocviewsublistonly" style="display: none;" id="tocview_0"><table cellspacing="0" cellpadding="0"><tr><td align="right">1&nbsp;</td><td><a href="#%28part._.Overview%29" class="tocviewlink" data-pltdoc="x">Overview</a></td></tr><tr><td align="right">2&nbsp;</td><td><a href="#%28part._.Definition%29" class="tocviewlink" data-pltdoc="x">Definition</a></td></tr><tr><td align="right">3&nbsp;</td><td><a href="#%28part._.Logging_functions%29" class="tocviewlink" data-pltdoc="x">Logging functions</a></td></tr><tr><td align="right">4&nbsp;</td><td><a href="#%28part._.Callbacks%29" class="tocviewlink" data-pltdoc="x">Callbacks</a></td></tr><tr><td align="right">5&nbsp;</td><td><a href="#%28part._.Output_helpers%29" class="tocviewlink" data-pltdoc="x">Output helpers</a></td></tr></table></div></div></div><div class="tocsub"><table class="tocsublist" cellspacing="0"><tr><td><span class="tocsublinknumber"></span><a href="#%28part._.Logging%29" class="tocsubseclink" data-pltdoc="x">Logging</a></td></tr><tr><td><span class="tocsublinknumber">1<span class="stt">&nbsp;</span></span><a href="#%28part._.Overview%29" class="tocsubseclink" data-pltdoc="x">Overview</a></td></tr><tr><td><span class="tocsublinknumber">2<span class="stt">&nbsp;</span></span><a href="#%28part._.Definition%29" class="tocsubseclink" data-pltdoc="x">Definition</a></td></tr><tr><td><a href="#%28form._%28%2Fhome%2Fhans%2Fsrc%2Fracket%2Fsimple-log%2Fscrbl%2Fsimple-log._def-log%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym">def-<wbr></wbr>log</span></a></td></tr><tr><td><span class="tocsublinknumber">3<span class="stt">&nbsp;</span></span><a href="#%28part._.Logging_functions%29" class="tocsubseclink" data-pltdoc="x">Logging functions</a></td></tr><tr><td><a href="#%28def._%28%2Fhome%2Fhans%2Fsrc%2Fracket%2Fsimple-log%2Fscrbl%2Fsimple-log._dbg-id%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym">dbg-<wbr></wbr>id</span></a></td></tr><tr><td><a href="#%28def._%28%2Fhome%2Fhans%2Fsrc%2Fracket%2Fsimple-log%2Fscrbl%2Fsimple-log._info-id%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym">info-<wbr></wbr>id</span></a></td></tr><tr><td><a href="#%28def._%28%2Fhome%2Fhans%2Fsrc%2Fracket%2Fsimple-log%2Fscrbl%2Fsimple-log._warn-id%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym">warn-<wbr></wbr>id</span></a></td></tr><tr><td><a href="#%28def._%28%2Fhome%2Fhans%2Fsrc%2Fracket%2Fsimple-log%2Fscrbl%2Fsimple-log._err-id%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym">err-<wbr></wbr>id</span></a></td></tr><tr><td><a href="#%28def._%28%2Fhome%2Fhans%2Fsrc%2Fracket%2Fsimple-log%2Fscrbl%2Fsimple-log._fatal-id%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym">fatal-<wbr></wbr>id</span></a></td></tr><tr><td><span class="tocsublinknumber">4<span class="stt">&nbsp;</span></span><a href="#%28part._.Callbacks%29" class="tocsubseclink" data-pltdoc="x">Callbacks</a></td></tr><tr><td><a href="#%28form._%28%2Fhome%2Fhans%2Fsrc%2Fracket%2Fsimple-log%2Fscrbl%2Fsimple-log._log-to%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym">log-<wbr></wbr>to</span></a></td></tr><tr><td><span class="tocsublinknumber">5<span class="stt">&nbsp;</span></span><a href="#%28part._.Output_helpers%29" class="tocsubseclink" data-pltdoc="x">Output helpers</a></td></tr><tr><td><a href="#%28form._%28%2Fhome%2Fhans%2Fsrc%2Fracket%2Fsimple-log%2Fscrbl%2Fsimple-log._log-to-display%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym">log-<wbr></wbr>to-<wbr></wbr>display</span></a></td></tr><tr><td><a href="#%28form._%28%2Fhome%2Fhans%2Fsrc%2Fracket%2Fsimple-log%2Fscrbl%2Fsimple-log._log-to-file%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym">log-<wbr></wbr>to-<wbr></wbr>file</span></a></td></tr></table></div></div><div class="maincolumn"><div class="main"><div class="versionbox"><span class="versionNoNav">9.1</span></div><section class="SsectionLevel1" id="section 0"><h1 class="heading"><a name="(part._.Logging)"></a>Logging<span class="button-group"><a href="#(part._.Logging)" class="heading-anchor" title="Link to here">🔗</a><span style="visibility: hidden"> </span></span></h1><div class="SAuthorListBox"><div class="SAuthorList"><p class="author">Hans Dijkema &lt;<a href="mailto:hans@dijkewijk.nl">hans@dijkewijk.nl</a>&gt;</p></div></div><p><table cellspacing="0" cellpadding="0" class="defmodule"><tr><td align="left"><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="file:///usr/share/doc/racket/reference/require.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._require%29%29" class="RktStxLink" data-pltdoc="x">require</a></span><span class="stt"> </span><span class="RktVal">"simple-log"</span><span class="RktPn">)</span></td><td align="right"><span class="RpackageSpec"><span class="Smaller">&nbsp;package:</span> <a href="https://pkgs.racket-lang.org/package/base" title="Install this package using `raco pkg install base`"><span class="stt">base</span></a></span></td></tr></table></p><section class="SsectionLevel2" id="section 1"><h2 class="heading">1<span class="stt">&nbsp;</span><a name="(part._.Overview)"></a>Overview<span class="button-group"><a href="#(part._.Overview)" class="heading-anchor" title="Link to here">🔗</a><span style="visibility: hidden"> </span></span></h2><p>Small wrapper around <span class="RktSym">logger</span> with per-logger callbacks.</p><p>A logger consists of a <span class="RktSym">logger</span>, a
<span class="RktSym">log-receiver</span> (level <span class="RktVal">'</span><span class="RktVal">debug</span>), a mutable
callback list, five logging procedures, and a background thread
dispatching messages.</p></section><section class="SsectionLevel2" id="section 2"><h2 class="heading">2<span class="stt">&nbsp;</span><a name="(part._.Definition)"></a>Definition<span class="button-group"><a href="#(part._.Definition)" class="heading-anchor" title="Link to here">🔗</a><span style="visibility: hidden"> </span></span></h2><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>syntax</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(form._(/home/hans/src/racket/simple-log/scrbl/simple-log._def-log))"></a><span title="Provided from: &quot;simple-log&quot; | Package: base"><span class="RktSym"><span class="RktSymDef RktSym">def-log</span></span></span><span class="hspace">&nbsp;</span><span class="RktVar">id</span><span class="RktPn">)</span></p></blockquote></td></tr><tr><td><span class="RktPn">(</span><span class="RktSym"><span class="RktSymDef RktSym">def-log</span></span><span class="hspace">&nbsp;</span><span class="RktVar">id</span><span class="hspace">&nbsp;</span><span class="RktVar">parent</span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">Defines a logger <span class="RktVar">id</span>. If <span class="RktVar">parent</span> is omitted,
<span class="RktPn">(</span><span class="RktSym"><a href="file:///usr/share/doc/racket/reference/logging.html#%28def._%28%28quote._~23~25kernel%29._current-logger%29%29" class="RktValLink" data-pltdoc="x">current-logger</a></span><span class="RktPn">)</span> is used.</div></p><p>Creates:</p><ul class="compact"><li><p><span class="RktPn">(</span><span class="RktSym"><a href="file:///usr/share/doc/racket/reference/logging.html#%28def._%28%28quote._~23~25kernel%29._make-logger%29%29" class="RktValLink" data-pltdoc="x">make-logger</a></span><span class="stt"> </span><span class="RktVal">'</span><span class="RktVal">id</span><span class="stt"> </span><span class="RktVar">parent</span><span class="RktPn">)</span></p></li><li><p><span class="RktPn">(</span><span class="RktSym"><a href="file:///usr/share/doc/racket/reference/logging.html#%28def._%28%28quote._~23~25kernel%29._make-log-receiver%29%29" class="RktValLink" data-pltdoc="x">make-log-receiver</a></span><span class="stt"> </span><span class="RktMeta"><a href="file:///usr/share/doc/racket/reference/stx-patterns.html#%28form._%28%28lib._racket%2Fprivate%2Fstxcase-scheme..rkt%29._......%29%29" class="RktStxLink" data-pltdoc="x">...</a></span><span class="stt"> </span><span class="RktVal">'</span><span class="RktVal">debug</span><span class="RktPn">)</span></p></li><li><p>callback list</p></li><li><p>procedures <span class="RktSym">dbg-id</span>, <span class="RktSym">info-id</span>,
<span class="RktSym">warn-id</span>, <span class="RktSym">err-id</span>, <span class="RktSym">fatal-id</span></p></li></ul><p>Starts a thread that <span class="RktSym"><a href="file:///usr/share/doc/racket/reference/sync.html#%28def._%28%28quote._~23~25kernel%29._sync%29%29" class="RktValLink" data-pltdoc="x">sync</a></span>s on the receiver and forwards
messages to callbacks.</p></section><section class="SsectionLevel2" id="section 3"><h2 class="heading">3<span class="stt">&nbsp;</span><a name="(part._.Logging_functions)"></a>Logging functions<span class="button-group"><a href="#(part._.Logging_functions)" class="heading-anchor" title="Link to here">🔗</a><span style="visibility: hidden"> </span></span></h2><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._(/home/hans/src/racket/simple-log/scrbl/simple-log._dbg-id))"></a><span title="Provided from: &quot;simple-log&quot; | Package: base"><span class="RktSym"><span class="RktSymDef RktSym">dbg-id</span></span></span><span class="hspace">&nbsp;</span><span class="RktVar">msg</span><span class="hspace">&nbsp;</span><span class="RktVar">arg</span><span class="hspace">&nbsp;</span><span class="RktMeta">...</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="file:///usr/share/doc/racket/reference/void.html#%28def._%28%28quote._~23~25kernel%29._void~3f%29%29" class="RktValLink" data-pltdoc="x">void?</a></span></p></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">msg</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="file:///usr/share/doc/racket/reference/strings.html#%28def._%28%28quote._~23~25kernel%29._string~3f%29%29" class="RktValLink" data-pltdoc="x">string?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">arg</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym">any/c</span></td></tr></table></blockquote></div><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._(/home/hans/src/racket/simple-log/scrbl/simple-log._info-id))"></a><span title="Provided from: &quot;simple-log&quot; | Package: base"><span class="RktSym"><span class="RktSymDef RktSym">info-id</span></span></span><span class="hspace">&nbsp;</span><span class="RktVar">msg</span><span class="hspace">&nbsp;</span><span class="RktVar">arg</span><span class="hspace">&nbsp;</span><span class="RktMeta">...</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="file:///usr/share/doc/racket/reference/void.html#%28def._%28%28quote._~23~25kernel%29._void~3f%29%29" class="RktValLink" data-pltdoc="x">void?</a></span></p></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">msg</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="file:///usr/share/doc/racket/reference/strings.html#%28def._%28%28quote._~23~25kernel%29._string~3f%29%29" class="RktValLink" data-pltdoc="x">string?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">arg</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym">any/c</span></td></tr></table></blockquote></div><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._(/home/hans/src/racket/simple-log/scrbl/simple-log._warn-id))"></a><span title="Provided from: &quot;simple-log&quot; | Package: base"><span class="RktSym"><span class="RktSymDef RktSym">warn-id</span></span></span><span class="hspace">&nbsp;</span><span class="RktVar">msg</span><span class="hspace">&nbsp;</span><span class="RktVar">arg</span><span class="hspace">&nbsp;</span><span class="RktMeta">...</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="file:///usr/share/doc/racket/reference/void.html#%28def._%28%28quote._~23~25kernel%29._void~3f%29%29" class="RktValLink" data-pltdoc="x">void?</a></span></p></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">msg</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="file:///usr/share/doc/racket/reference/strings.html#%28def._%28%28quote._~23~25kernel%29._string~3f%29%29" class="RktValLink" data-pltdoc="x">string?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">arg</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym">any/c</span></td></tr></table></blockquote></div><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._(/home/hans/src/racket/simple-log/scrbl/simple-log._err-id))"></a><span title="Provided from: &quot;simple-log&quot; | Package: base"><span class="RktSym"><span class="RktSymDef RktSym">err-id</span></span></span><span class="hspace">&nbsp;</span><span class="RktVar">msg</span><span class="hspace">&nbsp;</span><span class="RktVar">arg</span><span class="hspace">&nbsp;</span><span class="RktMeta">...</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="file:///usr/share/doc/racket/reference/void.html#%28def._%28%28quote._~23~25kernel%29._void~3f%29%29" class="RktValLink" data-pltdoc="x">void?</a></span></p></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">msg</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="file:///usr/share/doc/racket/reference/strings.html#%28def._%28%28quote._~23~25kernel%29._string~3f%29%29" class="RktValLink" data-pltdoc="x">string?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">arg</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym">any/c</span></td></tr></table></blockquote></div><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._(/home/hans/src/racket/simple-log/scrbl/simple-log._fatal-id))"></a><span title="Provided from: &quot;simple-log&quot; | Package: base"><span class="RktSym"><span class="RktSymDef RktSym">fatal-id</span></span></span><span class="hspace">&nbsp;</span><span class="RktVar">msg</span><span class="hspace">&nbsp;</span><span class="RktVar">arg</span><span class="hspace">&nbsp;</span><span class="RktMeta">...</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="file:///usr/share/doc/racket/reference/void.html#%28def._%28%28quote._~23~25kernel%29._void~3f%29%29" class="RktValLink" data-pltdoc="x">void?</a></span></p></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">msg</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="file:///usr/share/doc/racket/reference/strings.html#%28def._%28%28quote._~23~25kernel%29._string~3f%29%29" class="RktValLink" data-pltdoc="x">string?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">arg</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym">any/c</span></td></tr></table></blockquote></div></p><p>Formats with <span class="RktPn">(</span><span class="RktSym"><a href="file:///usr/share/doc/racket/reference/procedures.html#%28def._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._apply%29%29" class="RktValLink" data-pltdoc="x">apply</a></span><span class="stt"> </span><span class="RktSym"><a href="file:///usr/share/doc/racket/reference/Writing.html#%28def._%28%28quote._~23~25kernel%29._format%29%29" class="RktValLink" data-pltdoc="x">format</a></span><span class="stt"> </span><span class="RktPn">(</span><span class="RktSym"><a href="file:///usr/share/doc/racket/reference/pairs.html#%28def._%28%28quote._~23~25kernel%29._cons%29%29" class="RktValLink" data-pltdoc="x">cons</a></span><span class="stt"> </span><span class="RktSym">msg</span><span class="stt"> </span><span class="RktSym">args</span><span class="RktPn">)</span><span class="RktPn">)</span> and calls
<span class="RktSym"><a href="file:///usr/share/doc/racket/reference/logging.html#%28def._%28%28quote._~23~25kernel%29._log-message%29%29" class="RktValLink" data-pltdoc="x">log-message</a></span>.</p><p>Attached data:</p><blockquote class="SCodeFlow"><p><span class="RktPn">(</span><span class="RktSym"><a href="file:///usr/share/doc/racket/reference/pairs.html#%28def._%28%28quote._~23~25kernel%29._list%29%29" class="RktValLink" data-pltdoc="x">list</a></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym">iso-timestamp</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span><span class="RktVal">'</span><span class="RktVal">id</span><span class="RktPn">)</span></p></blockquote></section><section class="SsectionLevel2" id="section 4"><h2 class="heading">4<span class="stt">&nbsp;</span><a name="(part._.Callbacks)"></a>Callbacks<span class="button-group"><a href="#(part._.Callbacks)" class="heading-anchor" title="Link to here">🔗</a><span style="visibility: hidden"> </span></span></h2><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>syntax</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(form._(/home/hans/src/racket/simple-log/scrbl/simple-log._log-to))"></a><span title="Provided from: &quot;simple-log&quot; | Package: base"><span class="RktSym"><span class="RktSymDef RktSym">log-to</span></span></span><span class="hspace">&nbsp;</span><span class="RktVar">id</span><span class="hspace">&nbsp;</span><span class="RktVar">name</span><span class="hspace">&nbsp;</span><span class="RktVar">callback</span><span class="RktPn">)</span></p></blockquote></td></tr></table></blockquote></div><div class="SIntrapara">Registers <span class="RktVar">callback</span> under <span class="RktVar">name</span>. Existing entry
with same name is replaced.</div></p><p>Callback signature:</p><blockquote class="SCodeFlow"><p><span class="RktPn">(</span><span class="RktSym"><a href="file:///usr/share/doc/racket/reference/lambda.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._~ce~bb%29%29" class="RktStxLink" data-pltdoc="x">&#955;</a></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym">topic</span><span class="hspace">&nbsp;</span><span class="RktSym">level</span><span class="hspace">&nbsp;</span><span class="RktSym">dt</span><span class="hspace">&nbsp;</span><span class="RktSym">msg</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span><span class="RktMeta"><a href="file:///usr/share/doc/racket/reference/stx-patterns.html#%28form._%28%28lib._racket%2Fprivate%2Fstxcase-scheme..rkt%29._......%29%29" class="RktStxLink" data-pltdoc="x">...</a></span><span class="RktPn">)</span></p></blockquote></section><section class="SsectionLevel2" id="section 5"><h2 class="heading">5<span class="stt">&nbsp;</span><a name="(part._.Output_helpers)"></a>Output helpers<span class="button-group"><a href="#(part._.Output_helpers)" class="heading-anchor" title="Link to here">🔗</a><span style="visibility: hidden"> </span></span></h2><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>syntax</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(form._(/home/hans/src/racket/simple-log/scrbl/simple-log._log-to-display))"></a><span title="Provided from: &quot;simple-log&quot; | Package: base"><span class="RktSym"><span class="RktSymDef RktSym">log-to-display</span></span></span><span class="hspace">&nbsp;</span><span class="RktVar">id</span><span class="RktPn">)</span></p></blockquote></td></tr></table></blockquote></div><div class="SIntrapara">Registers <span class="RktVal">'</span><span class="RktVal">display</span>. Output:</div></p><p><table cellspacing="0" cellpadding="0" class="SVerbatim"><tr><td><p><span class="stt">topic:level:timestamp:message</span></p></td></tr></table></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>syntax</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(form._(/home/hans/src/racket/simple-log/scrbl/simple-log._log-to-file))"></a><span title="Provided from: &quot;simple-log&quot; | Package: base"><span class="RktSym"><span class="RktSymDef RktSym">log-to-file</span></span></span><span class="hspace">&nbsp;</span><span class="RktVar">id</span><span class="hspace">&nbsp;</span><span class="RktVar">filename</span><span class="RktPn">)</span></p></blockquote></td></tr></table></blockquote></div><div class="SIntrapara">Registers <span class="RktVal">'</span><span class="RktVal">file</span>. File opened with
<span class="RktPn">#:exists</span><span class="stt"> </span><span class="RktVal">'</span><span class="RktVal">replace</span>. One line per message, flushed.</div></p></section></section></div></div><div id="contextindicator">&nbsp;</div></body></html>