<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Logging on Brian Faust</title><link>https://wimdy.works/tags/logging/</link><description>Recent content in Logging on Brian Faust</description><generator>Hugo</generator><language>en-US</language><lastBuildDate>Mon, 01 Jan 0001 00:00:00 +0000</lastBuildDate><atom:link href="https://wimdy.works/tags/logging/rss.xml" rel="self" type="application/rss+xml"/><item><title>Audit History Is Different from Application Logging</title><link>https://wimdy.works/thoughts/audit-history-is-different-from-application-logging/</link><pubDate>Wed, 01 Nov 2017 00:00:00 +0000</pubDate><guid>https://wimdy.works/thoughts/audit-history-is-different-from-application-logging/</guid><description>&lt;p&gt;When a cart appears to expire, support may ask:&lt;/p&gt;
&lt;figure class="code-figure"&gt;
 &lt;div class="code-block" data-copy-code&gt;
 &lt;button class="copy-code" type="button" aria-label="Copy code"&gt;copy&lt;/button&gt;&lt;span class="sr-only" data-copy-status role="status" aria-live="polite"&gt;&lt;/span&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Which cart changed?
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;What was its prior state?
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;What state followed?
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Who or what caused the transition?
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Which policy allowed it?&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
 &lt;/div&gt;
&lt;/figure&gt;
&lt;p&gt;An engineer investigating the same report may ask:&lt;/p&gt;
&lt;figure class="code-figure"&gt;
 &lt;div class="code-block" data-copy-code&gt;
 &lt;button class="copy-code" type="button" aria-label="Copy code"&gt;copy&lt;/button&gt;&lt;span class="sr-only" data-copy-status role="status" aria-live="polite"&gt;&lt;/span&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Which request handled it?
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Which worker retried?
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;How long did the database call take?
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Which exception and stack occurred?
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;What else happened on that host?&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
 &lt;/div&gt;
&lt;/figure&gt;
&lt;p&gt;Both groups need evidence, but making one record answer both sets of questions
usually gives you a bloated audit trail and strangely incomplete logs. Audit
history explains durable business change. Application logs explain software
execution.&lt;/p&gt;</description></item><item><title>Logging Is a Workload, Not a Side Effect</title><link>https://wimdy.works/thoughts/logging-is-a-workload-not-a-side-effect/</link><pubDate>Tue, 01 Mar 2016 00:00:00 +0000</pubDate><guid>https://wimdy.works/thoughts/logging-is-a-workload-not-a-side-effect/</guid><description>&lt;p&gt;One system was writing roughly a thousand log lines per second to local disk.
Debug records were part of that stream. The individual call sites were small;
the combined stream was not.&lt;/p&gt;
&lt;p&gt;It was not cheap in aggregate. Every record still had to be constructed,
serialized, copied through handlers, written, rotated, and eventually removed
or archived. Whether anyone queried it later did not change that work. Calling
the record &lt;code&gt;debug&lt;/code&gt; did not exempt it from arithmetic.&lt;/p&gt;</description></item></channel></rss>