log4cl-extras/error:print-backtrace now prints conditions with type like:
Condition REBLOCKS-WEBSOCKET:NO-ACTIVE-WEBSOCKETS: No active websockets bound to the current page.
Condition: No active websockets bound to the current page.
ERRORS-TO-IGNOREargument. You can pass a list of class-names of conditions which should not be logged.
Backtrace printer was fixed to work on Clozure
log4cl-extras/secrets:make-secrets-replaceris able to mask secret values even in strings nested in the lists. This fixes issue of leaking Authorization tokens when some
HTTPerror 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>")))
A new variable
log4cl-extras/error:*args-filter-constructors*was introduced. It should be used together with
log4cl-extras/secrets:make-secrets-replacerto prevent secrets collection during the program life.
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.
log4cl-extras/error:*max-call-length*variable was documented.
:JSONlogger will output logger's category, filename and a callable name.
Fixed fail during logging error with
(setf some-func)in the backtrace.
TRACEBACK-TO-STRINGwas removed and replaced with
log4cl-extras/error:print-backtracewhich is now a part of public
Added ability to filter secret and sensitive values. Read documentation, to lear more.
with-log-unhandledfor cases when some function argument's print-object signaled the error.
Because of this nasty error, sometimes
with-log-unhandled didn't log "Unandled error".
log4cl-extras/error:with-log-unhandledmacro accepts key argument
DEPTHwhich is 10 by default.
This argument can be overriden by setting
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.
Added missing dependency from
log4cl-extras/config:setup sets appender into a mode when it prints log in a human
readable way if it its called from the
REPL. All logger fields are
printed as well, including a traceback.
Now condition's description is added to the end of the backtrace.
Fixed system's loading in environments with
This closes issue reported along with pull request #1.
log4cl-extras/error:with-log-unhandledcatched every signal, not only signals derived from
ERROR. Because of that, it logged traceback for non error signals like that:
Now this bad behavior was fixed and only
errors are logged.
Added ability to log tracebacks using