diff --git a/.nojekyll b/.nojekyll
new file mode 100644
index 0000000..e69de29
diff --git a/METADATA b/METADATA
new file mode 100644
index 0000000..06280f7
--- /dev/null
+++ b/METADATA
@@ -0,0 +1,2 @@
+languages: bash, css, json, lisp, markdown, plaintext, xml, yaml
+theme: a11y-dark
diff --git a/changelog.xml b/changelog.xml
new file mode 100644
index 0000000..b83f5a5
--- /dev/null
+++ b/changelog.xml
@@ -0,0 +1,123 @@
+
+
+
+ log4cl-extras ChangeLog
+ https://40ants.com/log4cl-extras/
+ xml-emitter
+ en-us
+
+ 0.11.0 (2024-03-01)
+ <h1 id="changed">Changed</h1><p>Macro <a href="https://40ants.com/log4cl-extras/#x-28LOG4CL-EXTRAS-2FERROR-3AWITH-LOG-UNHANDLED-20-2840ANTS-DOC-2FLOCATIVES-3AMACRO-29-29" data-document="https://40ants.com/log4cl-extras/" data-node="x-28LOG4CL-EXTRAS-2FERROR-3AWITH-LOG-UNHANDLED-20-2840ANTS-DOC-2FLOCATIVES-3AMACRO-29-29"><code>log4cl-extras/error:with-log-unhandled</code></a> now handles <code>SERIOUS-CONDITION</code> instead of <code>ERROR</code>. This is important, because <code>ERROR</code> is not a only subclass of the <code>SERIOUS-CONDITION</code>, for example, <code>SB-EXT:TIMEOUT</code> is inherited directly from <code>SERIOUS-CONDITION</code> and old version of the macro was not able to log such errors.</p>
+ Fri, 01 Mar 2024 00:00:00 +0000
+
+
+ 0.10.0 (2023-11-19)
+ <h1 id="new">New</h1><p>Variable <a href="https://40ants.com/log4cl-extras/#x-28LOG4CL-EXTRAS-2FAPPENDERS-3A-2ADEBUG-ON-ERROR-2A-20-28VARIABLE-29-29" data-document="https://40ants.com/log4cl-extras/" data-node="x-28LOG4CL-EXTRAS-2FAPPENDERS-3A-2ADEBUG-ON-ERROR-2A-20-28VARIABLE-29-29"><code>log4cl-extras/appenders:*debug-on-error*</code></a> was added and can be used to debug issues happening when handling log messages.
+When this option is <code>NIL</code>, appenders defined in log4cl-extras will only output "Unable to log the message" message in case of errors
+during the message output.</p><h1 id="fixes">Fixes</h1><ul><li><p>Package log4cl-extras now is created when library is loaded. This should fix a warning from <code>ASDF</code> about missing package.</p></li></ul>
+ Sun, 19 Nov 2023 00:00:00 +0000
+
+
+ 0.9.0 (2022-12-30)
+ <p>Function <a href="https://40ants.com/log4cl-extras/#x-28LOG4CL-EXTRAS-2FERROR-3APRINT-BACKTRACE-20FUNCTION-29" data-document="https://40ants.com/log4cl-extras/" data-node="x-28LOG4CL-EXTRAS-2FERROR-3APRINT-BACKTRACE-20FUNCTION-29"><code>log4cl-extras/error:print-backtrace</code></a> now prints conditions with type like:</p><pre><code class="">Condition REBLOCKS-WEBSOCKET:NO-ACTIVE-WEBSOCKETS: No active websockets bound to the current page.</code></pre><p>instead of:</p><p>Condition: No active websockets bound to the current page.</p>
+ Fri, 30 Dec 2022 00:00:00 +0000
+
+
+ 0.8.0 (2022-11-04)
+ <ul><li><p>Macro <a href="https://40ants.com/log4cl-extras/#x-28LOG4CL-EXTRAS-2FERROR-3AWITH-LOG-UNHANDLED-20-2840ANTS-DOC-2FLOCATIVES-3AMACRO-29-29" data-document="https://40ants.com/log4cl-extras/" data-node="x-28LOG4CL-EXTRAS-2FERROR-3AWITH-LOG-UNHANDLED-20-2840ANTS-DOC-2FLOCATIVES-3AMACRO-29-29"><code>log4cl-extras/error:with-log-unhandled</code></a> now has <code>ERRORS-TO-IGNORE</code> argument.
+You can pass a list of class-names of conditions which should not be logged.</p></li></ul>
+ Fri, 04 Nov 2022 00:00:00 +0000
+
+
+ 0.7.2 (2022-10-03)
+ <ul><li><p>Backtrace printer was fixed to work on Clozure<code>CL</code>.</p></li></ul>
+ Mon, 03 Oct 2022 00:00:00 +0000
+
+
+ 0.7.1 (2022-08-06)
+ <ul><li><p>Now <a href="https://40ants.com/log4cl-extras/#x-28LOG4CL-EXTRAS-2FSECRETS-3AMAKE-SECRETS-REPLACER-20FUNCTION-29" data-document="https://40ants.com/log4cl-extras/" data-node="x-28LOG4CL-EXTRAS-2FSECRETS-3AMAKE-SECRETS-REPLACER-20FUNCTION-29"><code>log4cl-extras/secrets:make-secrets-replacer</code></a> is able to mask secret values even in strings nested in the lists.
+ This fixes issue of leaking Authorization tokens when some <code>HTTP</code> error is logged.</p><p>Previously, backtrace was logged like this:</p><pre><code class="">1 File "/Users/art/projects/lisp/cloud-analyzer/.qlot/dists/ultralisp/software/fukamachi-dexador-20220619102143/src/backend/usocket.lisp", line 451
+ In DEXADOR.BACKEND.USOCKET:REQUEST
+ Args (#<unavailable argument> :METHOD :GET :HEADERS (("Authorization" . "OAuth AQAEA5qgMKaqAAffdZ0Nw7BqTkCTlp6ii80Gdmo")))</code></pre><p>and oauth token leaked to the log storage.</p><p>After this fix, backtrace will be logged like this:</p><pre><code class="">1 File "/Users/art/projects/lisp/cloud-analyzer/.qlot/dists/ultralisp/software/fukamachi-dexador-20220619102143/src/backend/usocket.lisp", line 451
+ In DEXADOR.BACKEND.USOCKET:REQUEST
+ Args (#<unavailable argument> :METHOD :GET :HEADERS (("Authorization" . "OAuth #<secret value>")))</code></pre></li><li><p>A new variable <a href="https://40ants.com/log4cl-extras/#x-28LOG4CL-EXTRAS-2FERROR-3A-2AARGS-FILTER-CONSTRUCTORS-2A-20-28VARIABLE-29-29" data-document="https://40ants.com/log4cl-extras/" data-node="x-28LOG4CL-EXTRAS-2FERROR-3A-2AARGS-FILTER-CONSTRUCTORS-2A-20-28VARIABLE-29-29"><code>log4cl-extras/error:*args-filter-constructors*</code></a> was introduced. It should be used together
+ with <a href="https://40ants.com/log4cl-extras/#x-28LOG4CL-EXTRAS-2FSECRETS-3AMAKE-SECRETS-REPLACER-20FUNCTION-29" data-document="https://40ants.com/log4cl-extras/" data-node="x-28LOG4CL-EXTRAS-2FSECRETS-3AMAKE-SECRETS-REPLACER-20FUNCTION-29"><code>log4cl-extras/secrets:make-secrets-replacer</code></a> to prevent secrets collection during the program life.</p><p>Previosly, when you created a secrets replaced and stored in in the <a href="https://40ants.com/log4cl-extras/#x-28LOG4CL-EXTRAS-2FERROR-3A-2AARGS-FILTERS-2A-20-28VARIABLE-29-29" data-document="https://40ants.com/log4cl-extras/" data-node="x-28LOG4CL-EXTRAS-2FERROR-3A-2AARGS-FILTERS-2A-20-28VARIABLE-29-29"><code>log4cl-extras/error:*args-filters*</code></a> variable,
+all secrets from logged backtraces were collected in a closure's state. When
+<a href="https://40ants.com/log4cl-extras/#x-28LOG4CL-EXTRAS-2FERROR-3A-2AARGS-FILTER-CONSTRUCTORS-2A-20-28VARIABLE-29-29" data-document="https://40ants.com/log4cl-extras/" data-node="x-28LOG4CL-EXTRAS-2FERROR-3A-2AARGS-FILTER-CONSTRUCTORS-2A-20-28VARIABLE-29-29"><code>log4cl-extras/error:*args-filter-constructors*</code></a> variable is used, a new secrets replacer will be created
+for processing of each backtrace.</p></li></ul>
+ Sat, 06 Aug 2022 00:00:00 +0000
+
+
+ 0.7.0 (2022-07-03)
+ <ul><li><p>Macro <a href="https://40ants.com/log4cl-extras/#x-28LOG4CL-EXTRAS-2FERROR-3AWITH-LOG-UNHANDLED-20-2840ANTS-DOC-2FLOCATIVES-3AMACRO-29-29" data-document="https://40ants.com/log4cl-extras/" data-node="x-28LOG4CL-EXTRAS-2FERROR-3AWITH-LOG-UNHANDLED-20-2840ANTS-DOC-2FLOCATIVES-3AMACRO-29-29"><code>log4cl-extras/error:with-log-unhandled</code></a> now uses internal function and you can change backtrace length on the fly by changing <a href="https://40ants.com/log4cl-extras/#x-28LOG4CL-EXTRAS-2FERROR-3A-2AMAX-TRACEBACK-DEPTH-2A-20-28VARIABLE-29-29" data-document="https://40ants.com/log4cl-extras/" data-node="x-28LOG4CL-EXTRAS-2FERROR-3A-2AMAX-TRACEBACK-DEPTH-2A-20-28VARIABLE-29-29"><code>log4cl-extras/error:*max-traceback-depth*</code></a> variable.</p></li><li><p>Also, <a href="https://40ants.com/log4cl-extras/#x-28LOG4CL-EXTRAS-2FERROR-3A-2AMAX-CALL-LENGTH-2A-20-28VARIABLE-29-29" data-document="https://40ants.com/log4cl-extras/" data-node="x-28LOG4CL-EXTRAS-2FERROR-3A-2AMAX-CALL-LENGTH-2A-20-28VARIABLE-29-29"><code>log4cl-extras/error:*max-call-length*</code></a> variable was documented.</p></li></ul>
+ Sun, 03 Jul 2022 00:00:00 +0000
+
+
+ 0.6.0 (2021-10-03)
+ <ul><li><p>Now <code>:PLAIN</code> and <code>:JSON</code> logger will output logger's category, filename and a callable name.</p></li></ul>
+ Sun, 03 Oct 2021 00:00:00 +0000
+
+
+ 0.5.1 (2021-03-02)
+ <ul><li><p>Fixed fail during logging error with <code>(setf some-func)</code> in the backtrace.</p></li></ul>
+ Tue, 02 Mar 2021 00:00:00 +0000
+
+
+ 0.5.0 (2021-01-24)
+ <ul><li><p>Function <code>TRACEBACK-TO-STRING</code> was removed and
+ replaced with <a href="https://40ants.com/log4cl-extras/#x-28LOG4CL-EXTRAS-2FERROR-3APRINT-BACKTRACE-20FUNCTION-29" data-document="https://40ants.com/log4cl-extras/" data-node="x-28LOG4CL-EXTRAS-2FERROR-3APRINT-BACKTRACE-20FUNCTION-29"><code>log4cl-extras/error:print-backtrace</code></a> which is now
+ a part of public <code>API</code>.</p></li><li><p>Added ability to filter secret and sensitive values.
+ Read documentation, to lear more.</p></li></ul>
+ Sun, 24 Jan 2021 00:00:00 +0000
+
+
+ 0.4.2 (2020-11-26)
+ <h1 id="fixed">Fixed</h1><ul><li><p>Fixed <a href="https://40ants.com/log4cl-extras/#x-28LOG4CL-EXTRAS-2FERROR-3AWITH-LOG-UNHANDLED-20-2840ANTS-DOC-2FLOCATIVES-3AMACRO-29-29" data-document="https://40ants.com/log4cl-extras/" data-node="x-28LOG4CL-EXTRAS-2FERROR-3AWITH-LOG-UNHANDLED-20-2840ANTS-DOC-2FLOCATIVES-3AMACRO-29-29"><code>with-log-unhandled</code></a> for cases when some function argument's print-object signaled the error.</p></li></ul><p>Because of this nasty error, sometimes <a href="https://40ants.com/log4cl-extras/#x-28LOG4CL-EXTRAS-2FERROR-3AWITH-LOG-UNHANDLED-20-2840ANTS-DOC-2FLOCATIVES-3AMACRO-29-29" data-document="https://40ants.com/log4cl-extras/" data-node="x-28LOG4CL-EXTRAS-2FERROR-3AWITH-LOG-UNHANDLED-20-2840ANTS-DOC-2FLOCATIVES-3AMACRO-29-29"><code>with-log-unhandled</code></a> didn't log "Unandled error".</p><h1 id="added">Added</h1><ul><li><p>Now <a href="https://40ants.com/log4cl-extras/#x-28LOG4CL-EXTRAS-2FERROR-3AWITH-LOG-UNHANDLED-20-2840ANTS-DOC-2FLOCATIVES-3AMACRO-29-29" data-document="https://40ants.com/log4cl-extras/" data-node="x-28LOG4CL-EXTRAS-2FERROR-3AWITH-LOG-UNHANDLED-20-2840ANTS-DOC-2FLOCATIVES-3AMACRO-29-29"><code>log4cl-extras/error:with-log-unhandled</code></a> macro accepts key argument <code>DEPTH</code> which is 10 by default.</p></li></ul><p>This argument can be overriden by setting <a href="https://40ants.com/log4cl-extras/#x-28LOG4CL-EXTRAS-2FERROR-3A-2AMAX-TRACEBACK-DEPTH-2A-20-28VARIABLE-29-29" data-document="https://40ants.com/log4cl-extras/" data-node="x-28LOG4CL-EXTRAS-2FERROR-3A-2AMAX-TRACEBACK-DEPTH-2A-20-28VARIABLE-29-29"><code>log4cl-extras/error:*max-traceback-depth*</code></a>.</p><ul><li><p>Also another variable <a href="https://40ants.com/log4cl-extras/#x-28LOG4CL-EXTRAS-2FERROR-3A-2AMAX-CALL-LENGTH-2A-20-28VARIABLE-29-29" data-document="https://40ants.com/log4cl-extras/" data-node="x-28LOG4CL-EXTRAS-2FERROR-3A-2AMAX-CALL-LENGTH-2A-20-28VARIABLE-29-29"><code>log4cl-extras/error:*max-call-length*</code></a> can be set to control
+ how long function or method name can be. By default it is 100, but methods are logged along
+ with their specialized arguments and can be longer.</p></li></ul>
+ Thu, 26 Nov 2020 00:00:00 +0000
+
+
+ 0.4.1 (2019-03-05)
+ <h1 id="fixed">Fixed</h1><ul><li><p>Added missing dependency from <code>CL-STRINGS</code> system.</p></li></ul>
+ Tue, 05 Mar 2019 00:00:00 +0000
+
+
+ 0.4.0 (2019-03-04)
+ <h1 id="improved">Improved</h1><p>Now <a href="https://40ants.com/log4cl-extras/#x-28LOG4CL-EXTRAS-2FCONFIG-3ASETUP-20FUNCTION-29" data-document="https://40ants.com/log4cl-extras/" data-node="x-28LOG4CL-EXTRAS-2FCONFIG-3ASETUP-20FUNCTION-29"><code>log4cl-extras/config:setup</code></a> sets appender into a mode when it prints log in a human
+readable way if it its called from the <code>SLY</code>'s <code>REPL</code>. All logger fields are
+printed as well, including a traceback.</p>
+ Mon, 04 Mar 2019 00:00:00 +0000
+
+
+ 0.3.0 (2019-01-07)
+ <h1 id="improved">Improved</h1><ul><li><p>Now condition's description is added to the end of the backtrace.</p></li></ul>
+ Mon, 07 Jan 2019 00:00:00 +0000
+
+
+ 0.2.2 (2018-12-08)
+ <h1 id="fixed">Fixed</h1><ul><li><p>Fixed system's loading in environments with <code>C</code> locale.</p></li></ul><p>This closes issue reported along with pull request #1.</p>
+ Sat, 08 Dec 2018 00:00:00 +0000
+
+
+ 0.2.1 (2018-11-24)
+ <h1 id="fixed">Fixed</h1><ul><li><p>Previously, macros <a href="https://40ants.com/log4cl-extras/#x-28LOG4CL-EXTRAS-2FERROR-3AWITH-LOG-UNHANDLED-20-2840ANTS-DOC-2FLOCATIVES-3AMACRO-29-29" data-document="https://40ants.com/log4cl-extras/" data-node="x-28LOG4CL-EXTRAS-2FERROR-3AWITH-LOG-UNHANDLED-20-2840ANTS-DOC-2FLOCATIVES-3AMACRO-29-29"><code>log4cl-extras/error:with-log-unhandled</code></a> catched every signal,
+ not only signals derived from <code>ERROR</code>. Because of that,
+ it logged traceback for non error signals like that:</p></li></ul><p><code>lisp
+ (log4cl-json/error:with-log-unhandled ()
+ (signal "foo"))
+</code></p><p>Now this bad behavior was fixed and only <code>errors</code> are logged.</p>
+ Sat, 24 Nov 2018 00:00:00 +0000
+
+
+ 0.2.0 (2017-08-29)
+ <h1 id="new">New</h1><ul><li><p>Added ability to log tracebacks using <a href="https://40ants.com/log4cl-extras/#x-28LOG4CL-EXTRAS-2FERROR-3AWITH-LOG-UNHANDLED-20-2840ANTS-DOC-2FLOCATIVES-3AMACRO-29-29" data-document="https://40ants.com/log4cl-extras/" data-node="x-28LOG4CL-EXTRAS-2FERROR-3AWITH-LOG-UNHANDLED-20-2840ANTS-DOC-2FLOCATIVES-3AMACRO-29-29"><code>log4cl-extras/error:with-log-unhandled</code></a>.</p></li></ul>
+ Tue, 29 Aug 2017 00:00:00 +0000
+
+
+ 0.1.0 (2017-01-23)
+ <ul><li><p>Initial version.</p></li></ul>
+ Mon, 23 Jan 2017 00:00:00 +0000
+
+
+
\ No newline at end of file
diff --git a/changelog/index.html b/changelog/index.html
new file mode 100644
index 0000000..e8b2257
--- /dev/null
+++ b/changelog/index.html
@@ -0,0 +1,147 @@
+
+
Macro log4cl-extras/error:with-log-unhandled now handles SERIOUS-CONDITION instead of ERROR. This is important, because ERROR is not a only subclass of the SERIOUS-CONDITION, for example, SB-EXT:TIMEOUT is inherited directly from SERIOUS-CONDITION and old version of the macro was not able to log such errors.
0.10.0 (2023-11-19)
New
Variable log4cl-extras/appenders:*debug-on-error* was added and can be used to debug issues happening when handling log messages.
+When this option is NIL, appenders defined in log4cl-extras will only output "Unable to log the message" message in case of errors
+during the message output.
Fixes
Package log4cl-extras now is created when library is loaded. This should fix a warning from ASDF about missing package.
Condition REBLOCKS-WEBSOCKET:NO-ACTIVE-WEBSOCKETS: No active websockets bound to the current page.
instead of:
Condition: No active websockets bound to the current page.
0.8.0 (2022-11-04)
Macro log4cl-extras/error:with-log-unhandled now has ERRORS-TO-IGNORE argument.
+You can pass a list of class-names of conditions which should not be logged.
0.7.2 (2022-10-03)
Backtrace printer was fixed to work on ClozureCL.
0.7.1 (2022-08-06)
Now log4cl-extras/secrets:make-secrets-replacer is able to mask secret values even in strings nested in the lists.
+ This fixes issue of leaking Authorization tokens when some HTTP error is logged.
Previously, backtrace was logged like this:
1 File "/Users/art/projects/lisp/cloud-analyzer/.qlot/dists/ultralisp/software/fukamachi-dexador-20220619102143/src/backend/usocket.lisp", line 451
+ In DEXADOR.BACKEND.USOCKET:REQUEST
+ Args (#<unavailable argument> :METHOD :GET :HEADERS (("Authorization" . "OAuth AQAEA5qgMKaqAAffdZ0Nw7BqTkCTlp6ii80Gdmo")))
and oauth token leaked to the log storage.
After this fix, backtrace will be logged like this:
1 File "/Users/art/projects/lisp/cloud-analyzer/.qlot/dists/ultralisp/software/fukamachi-dexador-20220619102143/src/backend/usocket.lisp", line 451
+ In DEXADOR.BACKEND.USOCKET:REQUEST
+ Args (#<unavailable argument> :METHOD :GET :HEADERS (("Authorization" . "OAuth #<secret value>")))
Previosly, when you created a secrets replaced and stored in in the log4cl-extras/error:*args-filters* variable,
+all secrets from logged backtraces were collected in a closure's state. When
+log4cl-extras/error:*args-filter-constructors* variable is used, a new secrets replacer will be created
+for processing of each backtrace.
Also another variable log4cl-extras/error:*max-call-length* can be set to control
+ how long function or method name can be. By default it is 100, but methods are logged along
+ with their specialized arguments and can be longer.
0.4.1 (2019-03-05)
Fixed
Added missing dependency from CL-STRINGS system.
0.4.0 (2019-03-04)
Improved
Now log4cl-extras/config:setup sets appender into a mode when it prints log in a human
+readable way if it its called from the SLY's REPL. All logger fields are
+printed as well, including a traceback.
0.3.0 (2019-01-07)
Improved
Now condition's description is added to the end of the backtrace.
0.2.2 (2018-12-08)
Fixed
Fixed system's loading in environments with C locale.
This closes issue reported along with pull request #1.
0.2.1 (2018-11-24)
Fixed
Previously, macros log4cl-extras/error:with-log-unhandled catched every signal,
+ not only signals derived from ERROR. Because of that,
+ it logged traceback for non error signals like that: