The a-cl-logger Reference Manual

Table of Contents

Next: , Previous: , Up: (dir)   [Contents][Index]

The a-cl-logger Reference Manual

This is the a-cl-logger Reference Manual, version 1.0.1, generated automatically by Declt version 2.3 "Robert April" on Tue Jan 09 13:03:32 2018 GMT+0.


Next: , Previous: , Up: Top   [Contents][Index]

1 Introduction

a-cl-logger

A common lisp logging library providing context sensitive logging of more than just strings to more than just local files / output streams

This started as a significant refactor arnesi logging and the many chunks of surrounding code.

Goals

Quickstart


(eval-when (:compile-toplevel :load-toplevel :execute)
  (ql:quickload :a-cl-logger))

;; log to stderr
(a-cl-logger:define-logger testlog ())
(defun do-something(x)
  (testlog.debug "starting to do something to ~a" x)
  (testlog.info "did something to ~a" x))

;; log to stderr and a file (see note about buffering in "Gotchas" below)
(a-cl-logger:define-logger filelog ()
  :appenders (make-instance 'a-cl-logger:file-log-appender
                :log-file "test.log"))

;; log to stderr and a file (see note about buffering in "Gotchas" below)
(a-cl-logger:define-logger filelog ()
  :appenders (make-instance 'a-cl-logger:json-file-log-appender
                :log-file "test.json.log"))


Description and Glossary

A Logger is a mechanism for generating a text message and have that messaged saved somewhere for future review. Logging can be used as a debugging mechanism or for just reporting on the status of a system.

Messages are sent to a particular Logger. Each logger sends the messages it receives to its appenders. An appenders's job is to take a message and write it somewhere. Loggers are organized in a hierarchy and messages sent to a logger will also be sent to that loggers's parents (if valid). Only if the message is enabled for the current logger will it be propogated to the parents.

Each logger has a level which is used to determine whether a particular message should be processed or not. Loggers inherit their log level from their parents. If a logger has multiple direct parents its log level is the min of the levels of its parents.

Glossary

Log message format:

Messages contain:

The default printing of a message is
"{ts} {logger}{level} formatted-msg {key,val ...}"

eg:

(testlog.debug "Format-string example:#~d" 1)
(testlog.debug :a-plist-key :a-plist-value :some-key "some value")

Logging

Logging can be accomplished by a couple of means:

Helper macros

Helper

(testlog.debug "Format-string example:#~d" 1)
(testlog.info :a-plist-key :a-plist-value :some-key "some value")

These helper macros will handle errors in log argument evaluation (you can still debug if debug-hook is bound). They will also capture the literal arguments provided to the macro to ease debugging.

do-log

The do-log function can also be used to create log messages

(do-log *testlog* +info+ "Format-string example:#~d" 1)
(do-log 'testlog +debug+ :a-plist-key :a-plist-value :some-key "some value")

There is also a helper get-log-fn which will create a function of (&rest args) that logs to a given logger and level). This is useful for libraries that supply functional logging hooks

(get-log-fn *testlog* :level +info+) => (lambda (&rest args) ...)

Root Logger

There is a root logger which all other loggers have as a parent by default. This is a conveneint place to put appenders that should always apply. You can remove the root by removing it from the parents slot of a logger.

Appenders and Formatters

Filtering

This will mute timing messages to any file appenders (eg: send timing only to the repl / logstash)

(define-logger app-log ())
(define-logger timing-log (app-log))
(defun mute-timing-file-appends (c)
    (let* ((m (a-log:message c))
           (l (a-log:logger m))
           (a (a-log:appender c)))
      (when (and (typep a 'a-log:file-log-appender)
                 (eql l *timing-log*))
        (abort c))))
(a-log:add-signal-handler
 *timing-log* 'a-log:appending-message 'mute-timing-file-appends)

Signals and Restarts - Context Sensitive Logging

Messages generate signals on being created and on being appended.

Muffling log messages / aborting

Each signal can be aborted which will prevent the operation from occuring.

Aborting while appending will prevent the message from going to a single destination. Aborting while logging will prevent the message from going to ANY appenders of the log or its parents. Aborting while generating a message just muffles that log message entirely

Changing / Adding to the messages being logged

At each of these points you can invoke the restart change-message to alter the message going out. Generally the message you change to will be a copy of the original (see copy-message).

Each of these signals are wrapped in a change-message restart that can be used to modify the message for the remainder of the operation. (IE: a specific appender will operate on a new copy of the message with different, supplemental data).

Default Handlers

Signals can be handled by handler-binds on the dynamic context or by adding default-handlers to the default-signal-bindings slot on the logger. This can be accomplished using add-signal-handler passing the logger, a condition type and a fn.

Here are some examples. The first prevents the timing log from being inserted into the log file. The second prevents a particular log message from being inserted into the logs.

(defun mute-timing-file-appends (c)
    (let* ((m (a-log:message c))
           (l (a-log:logger m))
           (a (a-log:appender c)))
      (when (and (typep a 'a-log:file-log-appender)
                 (eql l *timing-log*))
        (abort c))))

(a-log:add-signal-handler
 *timing-log* 'a-log:appending-message 'mute-timing-file-appends)

(defun ignore-foreach-warnings (c)
  (let ((fs (a-log:format-control (a-log:message c))))
    (when (cl-ppcre:scan #?r"(?i)invalid argument supplied for foreach" fs)
      (abort c))))

(a-log:add-signal-handler
 *wp-log* 'a-log:generating-message 'ignore-foreach-warnings)

Helper Functions

Gotchas

Differences From Arnesi/src/log.lisp

Examples:

!! These examples are all in SBCL !!

Capturing log output to strings

(a-log:with-logged-output (a-log:*root-logger*)
  (run-some-data *context*)
  )
=>
"Log message 1
Log message 2
Log message 3"

Filtering message content

This will abort / mute log messages that match a certain warning

(defun ignore-foreach-warnings (c)
  (let ((fs (a-log:format-control (a-log:message c))))
    (when (cl-ppcre:scan #?r"(?i)invalid argument supplied for foreach" fs)
      (abort c))))

(define-logger my-module-log (my-log))

Filter log messages globally for a specific logger:

(a-log:add-signal-handler
 *my-module-log* 'a-log:generating-message 'ignore-foreach-warnings)

Filter log messages locally for a logger:

(defmacro with-muted-foreach-warnings (() &body body)
  (handler-bind ((a-log:generating-message #'ignore-foreach-warnings))
    (progn ,@body)))

Basic Context Sensitive Logging

(a-log:when-log-message-generated ((a-log:push-into-message :a 1 :b 2)) (log.debug "This message will have a=1 and b=2 in its data"))

Logging the lexical environment


(a-log:define-logger my-log ()
  :appenders (make-instance 'a-log:stream-log-appender :stream *standard-output*))

(defun compile-env-data-list (env)
  (let* ((blocks (mapcar #'first (reverse (sb-c::lexenv-blocks env))))
         (lex-vars (reverse (sb-c::lexenv-vars env)))
         (vars (iter (for (name . v) in lex-vars)
                 (for ignore? = (ignore-errors (sb-c::lambda-var-ignorep v)))
                 (unless ignore?
                   (collect `(quote ,name))
                   (collect name)))))
    (values
     (first blocks)
     `(list :blocks (princ-to-string '(,@blocks))
       (list ,@vars)))))

(defmacro with-env-stats-recorder (()
                                   &body body &environment env)
  "puts data and tag from the lexical env into the message"
  (multiple-value-bind (name data-forms)
      (compile-env-data-list env)
    `(a-log:when-log-message-generated
      ((a-log:push-into-message :lexical-data (,@data-forms) :name ',name))
      ,@body)))

(defun test-cs-logging (&key (a 1) (b 2))
  (my-log.info "OUT of Env Recorder ")
  (with-env-stats-recorder ()
    (my-log.info "In test-cs-logger recorder ")
    (let ((c (+ 1 b)))
      (flet ((again (d)
               (incf d)
               (with-env-stats-recorder ()
                 (my-log.info "In again ~a " d))))
        (again a)
        (again b)))))

Next: , Previous: , Up: Top   [Contents][Index]

2 Systems

The main system appears first, followed by any subsystem dependency.


Previous: , Up: Systems   [Contents][Index]

2.1 a-cl-logger

Author

Russ Tyndall <russ@acceleration.net>

License

BSD

Description

A logger that sends to multiple destinations in multiple formats. Based on arnesi logger

Version

1.0.1

Dependencies
Source

a-cl-logger.asd (file)

Components

Next: , Previous: , Up: Top   [Contents][Index]

3 Files

Files are sorted by type and then listed depth-first from the systems components trees.


Previous: , Up: Files   [Contents][Index]

3.1 Lisp


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.1 a-cl-logger.asd

Location

a-cl-logger.asd

Systems

a-cl-logger (system)

Packages

a-cl-logger.system


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.2 a-cl-logger/packages.lisp

Parent

a-cl-logger (system)

Location

packages.lisp

Packages

a-cl-logger


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.3 a-cl-logger/utils.lisp

Dependency

packages.lisp (file)

Parent

a-cl-logger (system)

Location

utils.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.4 a-cl-logger/log.lisp

Dependency

utils.lisp (file)

Parent

a-cl-logger (system)

Location

log.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.5 a-cl-logger/appenders.lisp

Dependency

log.lisp (file)

Parent

a-cl-logger (system)

Location

appenders.lisp

Exported Definitions
Internal Definitions

Previous: , Up: Lisp files   [Contents][Index]

3.1.6 a-cl-logger/helpers.lisp

Dependency

appenders.lisp (file)

Parent

a-cl-logger (system)

Location

helpers.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Top   [Contents][Index]

4 Packages

Packages are listed by definition order.


Next: , Previous: , Up: Packages   [Contents][Index]

4.1 a-cl-logger.system

Source

a-cl-logger.asd

Use List

Previous: , Up: Packages   [Contents][Index]

4.2 a-cl-logger

Source

packages.lisp (file)

Nickname

a-log

Use List
Exported Definitions
Internal Definitions

Next: , Previous: , Up: Top   [Contents][Index]

5 Definitions

Definitions are sorted by export status, category, package, and then by lexicographic order.


Next: , Previous: , Up: Definitions   [Contents][Index]

5.1 Exported definitions


Next: , Previous: , Up: Exported definitions   [Contents][Index]

5.1.1 Special variables

Special Variable: *appender*
Package

a-cl-logger

Source

utils.lisp (file)

Special Variable: *log-level-names*
Package

a-cl-logger

Source

utils.lisp (file)

Special Variable: *message*
Package

a-cl-logger

Source

utils.lisp (file)

Special Variable: *root-logger*

By default all loggers have the *root-logger* as a parent

Package

a-cl-logger

Source

helpers.lisp (file)

Special Variable: +debug+
Package

a-cl-logger

Source

utils.lisp (file)

Special Variable: +dribble+
Package

a-cl-logger

Source

utils.lisp (file)

Special Variable: +error+
Package

a-cl-logger

Source

utils.lisp (file)

Special Variable: +fatal+
Package

a-cl-logger

Source

utils.lisp (file)

Special Variable: +info+
Package

a-cl-logger

Source

utils.lisp (file)

Special Variable: +warn+
Package

a-cl-logger

Source

utils.lisp (file)


Next: , Previous: , Up: Exported definitions   [Contents][Index]

5.1.2 Macros

Macro: define-logger NAME PARENTS &key COMPILE-TIME-LEVEL LEVEL APPENDERS DOCUMENTATION FORCE?
Package

a-cl-logger

Source

log.lisp (file)

Macro: get-logger! &rest PLACES
Package

a-cl-logger

Source

utils.lisp (file)

Macro: log-around LOGGER-FORM &body BODY
Package

a-cl-logger

Source

helpers.lisp (file)

Macro: log-errors (LOGGER &optional MESSAGE) &body BODY

like ignore-errors but logs instead

Package

a-cl-logger

Source

helpers.lisp (file)

Macro: log-serious-conditions (LOGGER &optional MESSAGE) &body BODY

like ignore-errors but logs instead

Package

a-cl-logger

Source

helpers.lisp (file)

Macro: require-logger! &rest PLACES
Package

a-cl-logger

Source

utils.lisp (file)

Macro: when-log-message-appended (&body HANDLER-BODY) &body BODY
Package

a-cl-logger

Source

helpers.lisp (file)

Macro: when-log-message-generated (&body HANDLER-BODY) &body BODY
Package

a-cl-logger

Source

helpers.lisp (file)

Macro: with-appender (LOGGER APPENDER) &body BODY

Add an appender to logger for the duration of the scope

Package

a-cl-logger

Source

helpers.lisp (file)

Macro: with-logged-output (LOGGER) &body BODY
Package

a-cl-logger

Source

helpers.lisp (file)

Macro: with-logged-output-to-place (LOGGER PLACE) &body BODY
Package

a-cl-logger

Source

helpers.lisp (file)


Next: , Previous: , Up: Exported definitions   [Contents][Index]

5.1.3 Functions

Function: add-signal-handler LOGGER CONDITION-NAME FN
Package

a-cl-logger

Source

log.lisp (file)

Function: alist-as-json ALIST

Create a pre-encoded json object from an alist

Package

a-cl-logger

Source

appenders.lisp (file)

Function: close-all-files &key LOGGERS
Package

a-cl-logger

Source

helpers.lisp (file)

Function: do-log LOG LEVEL &rest ARGS
Package

a-cl-logger

Source

log.lisp (file)

Function: ensure-debug-io-appender LOGGER
Package

a-cl-logger

Source

appenders.lisp (file)

Function: ensure-file-appender LOGGER &key BUFFER-P NAME DIRECTORY PATH
Package

a-cl-logger

Source

appenders.lisp (file)

Function: ensure-stderr-appender LOGGER
Package

a-cl-logger

Source

appenders.lisp (file)

Function: find-appender LOGGER &key TYPE PREDICATE RECURSE?
Package

a-cl-logger

Source

appenders.lisp (file)

Function: get-log-fn LOG-ID &key LEVEL

Given a logger identifier name like ’adwolf-log.debug or ’adwolf-log find the logger associated with it and build a (lambda (message &rest args)) that can be funcalled to log to that logger.

Package

a-cl-logger

Source

helpers.lisp (file)

Function: get-logger NAME
Function: (setf get-logger) NEW NAME
Package

a-cl-logger

Source

log.lisp (file)

Function: log-level-name-of LEVEL &key RAW?
Package

a-cl-logger

Source

log.lisp (file)

Function: make-log-path ROOT FILE
Package

a-cl-logger

Source

helpers.lisp (file)

Function: make-message LOGGER LEVEL ARGS &key ARG-LITERALS DATA-PLIST &aux SINGLETON FORMAT-CONTROL?
Package

a-cl-logger

Source

log.lisp (file)

Function: plist-as-json &rest PLIST

Create a pre-encoded json object from a plist

Package

a-cl-logger

Source

appenders.lisp (file)

Function: push-into-message &rest PLIST
Package

a-cl-logger

Source

helpers.lisp (file)

Function: remove-appender LOGGER &key TYPE PREDICATE PATH RECURSE?
Package

a-cl-logger

Source

appenders.lisp (file)

Function: require-logger NAME
Package

a-cl-logger

Source

log.lisp (file)

Function: setup-logger LOGGER &key LEVEL FILE-NAME LOG-ROOT BUFFER-P

Reconfigures a logger such that it matches the setup specified

This is sometimes necessary if your streams get messed up (eg: slime disconnect and reconnect)

Always ensure there is a *error-output* stream logger
and if a file-name is passed in a file-logger going to it

Package

a-cl-logger

Source

helpers.lisp (file)


Next: , Previous: , Up: Exported definitions   [Contents][Index]

5.1.4 Generic functions

Generic Function: append-message LOG-APPENDER MESSAGE

The method responsible for actually putting the logged information somewhere

Package

a-cl-logger

Source

appenders.lisp (file)

Methods
Method: append-message (APPENDER file-log-appender) MESSAGE
Method: append-message (S stream-log-appender) MESSAGE
Generic Function: appender CONDITION
Generic Function: (setf appender) NEW-VALUE CONDITION
Package

a-cl-logger

Methods
Method: appender (CONDITION appending-message)
Method: (setf appender) NEW-VALUE (CONDITION appending-message)
Source

log.lisp (file)

Generic Function: appenders OBJECT
Generic Function: (setf appenders) NEW-VALUE OBJECT
Package

a-cl-logger

Methods
Method: appenders (LOGGER logger)
Method: (setf appenders) NEW-VALUE (LOGGER logger)

A list of appender objects this logger sholud send messages to.

Source

log.lisp (file)

Generic Function: children OBJECT
Generic Function: (setf children) NEW-VALUE OBJECT
Package

a-cl-logger

Methods
Method: children (LOGGER logger)
Method: (setf children) NEW-VALUE (LOGGER logger)

The logger which inherit from this logger.

Source

log.lisp (file)

Generic Function: data-plist OBJECT
Generic Function: (setf data-plist) NEW-VALUE OBJECT
Package

a-cl-logger

Methods
Method: data-plist (MESSAGE message)

automatically generated reader method

Source

log.lisp (file)

Method: (setf data-plist) NEW-VALUE (MESSAGE message)

automatically generated writer method

Source

log.lisp (file)

Generic Function: default-signal-bindings OBJECT
Generic Function: (setf default-signal-bindings) NEW-VALUE OBJECT
Package

a-cl-logger

Methods
Method: default-signal-bindings (LOGGER logger)

automatically generated reader method

Source

log.lisp (file)

Method: (setf default-signal-bindings) NEW-VALUE (LOGGER logger)

automatically generated writer method

Source

log.lisp (file)

Generic Function: do-logging LOGGER MESSAGE

Applys a message to the loggers appenders
Message is either a string or a list. When it’s a list and the first element is a string then it’s processed as args to cl:format.

Package

a-cl-logger

Source

log.lisp (file)

Methods
Method: do-logging LOGGER MESSAGE around
Method: do-logging LOG (MESSAGE null)
Method: do-logging LOG (MESSAGE message)
Generic Function: format-args OBJECT
Generic Function: (setf format-args) NEW-VALUE OBJECT
Package

a-cl-logger

Methods
Method: format-args (MESSAGE message)

automatically generated reader method

Source

log.lisp (file)

Method: (setf format-args) NEW-VALUE (MESSAGE message)

automatically generated writer method

Source

log.lisp (file)

Generic Function: format-control OBJECT
Generic Function: (setf format-control) NEW-VALUE OBJECT
Package

a-cl-logger

Methods
Method: format-control (MESSAGE message)

automatically generated reader method

Source

log.lisp (file)

Method: (setf format-control) NEW-VALUE (MESSAGE message)

automatically generated writer method

Source

log.lisp (file)

Generic Function: format-message APPENDER FORMATTER MESSAGE STREAM
Package

a-cl-logger

Source

appenders.lisp (file)

Methods
Method: format-message (APPENDER appender) FORMATTER (MESSAGE message) STREAM
Method: format-message (APPENDER appender) (FORMATTER json-formatter) (MESSAGE message) STREAM &aux SEEN LOG
Generic Function: formatter OBJECT
Generic Function: (setf formatter) NEW-VALUE OBJECT
Package

a-cl-logger

Methods
Method: formatter (APPENDER appender)

automatically generated reader method

Source

appenders.lisp (file)

Method: (setf formatter) NEW-VALUE (APPENDER appender)

automatically generated writer method

Source

appenders.lisp (file)

Generic Function: json OBJECT
Generic Function: (setf json) NEW-VALUE OBJECT
Package

a-cl-logger

Methods
Method: json (JSON json)

automatically generated reader method

Source

appenders.lisp (file)

Method: (setf json) NEW-VALUE (JSON json)

automatically generated writer method

Source

appenders.lisp (file)

Generic Function: level OBJECT
Generic Function: (setf level) NEW-VALUE OBJECT
Package

a-cl-logger

Methods
Method: level (APPENDER appender)

automatically generated reader method

Source

appenders.lisp (file)

Method: (setf level) NEW-VALUE (APPENDER appender)

automatically generated writer method

Source

appenders.lisp (file)

Method: level (LOGGER logger)
Method: (setf level) NEW-VALUE (LOGGER logger)

This loggers level.

Source

log.lisp (file)

Method: level (MESSAGE message)

automatically generated reader method

Source

log.lisp (file)

Method: (setf level) NEW-VALUE (MESSAGE message)

automatically generated writer method

Source

log.lisp (file)

Generic Function: log-level LOG
Package

a-cl-logger

Source

log.lisp (file)

Writer

(setf log-level) (generic function)

Methods
Method: log-level (LOG logger)
Method: log-level IT &aux LOG
Generic Function: (setf log-level) NEW LOG &optional RECURSIVE

Change the logger’s level of to NEW-LEVEL. If RECUSIVE is T the setting is also applied to the sub logger of logger.

Package

a-cl-logger

Source

log.lisp (file)

Reader

log-level (generic function)

Methods
Method: (setf log-level) NEW-LEVEL (APPENDER appender) &optional RECURSIVE
Source

appenders.lisp (file)

Method: (setf log-level) NEW-LEVEL LOG &optional RECURSIVE
Generic Function: log-stream OBJECT
Generic Function: (setf log-stream) NEW-VALUE OBJECT
Package

a-cl-logger

Methods
Method: log-stream (STREAM-LOG-APPENDER stream-log-appender)

automatically generated reader method

Source

appenders.lisp (file)

Method: (setf log-stream) NEW-VALUE (STREAM-LOG-APPENDER stream-log-appender)

automatically generated writer method

Source

appenders.lisp (file)

Generic Function: logger CONDITION
Generic Function: (setf logger) NEW-VALUE CONDITION
Package

a-cl-logger

Methods
Method: logger (MESSAGE message)

automatically generated reader method

Source

log.lisp (file)

Method: (setf logger) NEW-VALUE (MESSAGE message)

automatically generated writer method

Source

log.lisp (file)

Method: logger (CONDITION appending-message)
Method: (setf logger) NEW-VALUE (CONDITION appending-message)
Source

log.lisp (file)

Method: logger (CONDITION logging-message)
Method: (setf logger) NEW-VALUE (CONDITION logging-message)
Source

log.lisp (file)

Generic Function: message CONDITION
Generic Function: (setf message) NEW-VALUE CONDITION
Package

a-cl-logger

Methods
Method: message (CONDITION appending-message)
Method: (setf message) NEW-VALUE (CONDITION appending-message)
Source

log.lisp (file)

Method: message (CONDITION logging-message)
Method: (setf message) NEW-VALUE (CONDITION logging-message)
Source

log.lisp (file)

Method: message (CONDITION generating-message)
Method: (setf message) NEW-VALUE (CONDITION generating-message)
Source

log.lisp (file)

Generic Function: name CONDITION
Generic Function: (setf name) NEW-VALUE CONDITION
Package

a-cl-logger

Methods
Method: name (LOGGER logger)

automatically generated reader method

Source

log.lisp (file)

Method: (setf name) NEW-VALUE (LOGGER logger)

automatically generated writer method

Source

log.lisp (file)

Method: name (MESSAGE message)

automatically generated reader method

Source

log.lisp (file)

Method: (setf name) NEW-VALUE (MESSAGE message)

automatically generated writer method

Source

log.lisp (file)

Method: name (CONDITION missing-logger)
Method: (setf name) NEW-VALUE (CONDITION missing-logger)
Source

log.lisp (file)

Generic Function: parents OBJECT
Generic Function: (setf parents) NEW-VALUE OBJECT
Package

a-cl-logger

Methods
Method: parents (LOGGER logger)
Method: (setf parents) NEW-VALUE (LOGGER logger)

The logger this logger inherits from.

Source

log.lisp (file)


Next: , Previous: , Up: Exported definitions   [Contents][Index]

5.1.5 Conditions

Condition: appending-message ()
Package

a-cl-logger

Source

log.lisp (file)

Direct superclasses

condition (condition)

Direct methods
Direct slots
Slot: message
Initargs

:message

Initform

(quote nil)

Readers

message (generic function)

Writers

(setf message) (generic function)

Slot: logger
Initargs

:logger

Initform

(quote nil)

Readers

logger (generic function)

Writers

(setf logger) (generic function)

Slot: appender
Initargs

:appender

Initform

(quote nil)

Readers

appender (generic function)

Writers

(setf appender) (generic function)

Condition: generating-message ()
Package

a-cl-logger

Source

log.lisp (file)

Direct superclasses

condition (condition)

Direct methods
  • message (method)
  • message (method)
Direct slots
Slot: message
Initargs

:message

Initform

(quote nil)

Readers

message (generic function)

Writers

(setf message) (generic function)

Condition: logging-message ()
Package

a-cl-logger

Source

log.lisp (file)

Direct superclasses

condition (condition)

Direct methods
  • logger (method)
  • logger (method)
  • message (method)
  • message (method)
Direct slots
Slot: message
Initargs

:message

Initform

(quote nil)

Readers

message (generic function)

Writers

(setf message) (generic function)

Slot: logger
Initargs

:logger

Initform

(quote nil)

Readers

logger (generic function)

Writers

(setf logger) (generic function)


Previous: , Up: Exported definitions   [Contents][Index]

5.1.6 Classes

Class: appender ()

The base of all log appenders (destinations)

Package

a-cl-logger

Source

appenders.lisp (file)

Direct superclasses

standard-object (class)

Direct subclasses

stream-log-appender (class)

Direct methods
Direct slots
Slot: formatter
Initargs

:formatter

Readers

formatter (generic function)

Writers

(setf formatter) (generic function)

Slot: level
Initargs

:level

Readers

level (generic function)

Writers

(setf level) (generic function)

Class: debug-io-log-appender ()
Package

a-cl-logger

Source

appenders.lisp (file)

Direct superclasses

stream-log-appender (class)

Direct Default Initargs
InitargValue
:stream*debug-io*
Class: file-log-appender ()
Package

a-cl-logger

Source

appenders.lisp (file)

Direct superclasses

stream-log-appender (class)

Direct subclasses

json-file-log-appender (class)

Direct methods
Direct slots
Slot: log-file

Name of the file to write log messages to.

Initargs

:log-file

Readers

log-file (generic function)

Writers

(setf log-file) (generic function)

Slot: buffer-p
Initargs

:buffer-p

Initform

t

Readers

buffer-p (generic function)

Writers

(setf buffer-p) (generic function)

Direct Default Initargs
InitargValue
:date-format:iso
Class: formatter ()

The base class of all message formatters

Package

a-cl-logger

Source

appenders.lisp (file)

Direct superclasses

standard-object (class)

Direct subclasses
Class: json ()

A type to know when something is already encoded, so that
we just write it out. It is sometimes beneficial to pre-encode some bits of log data and this allows that

Package

a-cl-logger

Source

appenders.lisp (file)

Direct superclasses

standard-object (class)

Direct methods
  • json (method)
  • json (method)
Direct slots
Slot: json
Initargs

:json

Readers

json (generic function)

Writers

(setf json) (generic function)

Class: json-formatter ()

The base class of all json formatters

Package

a-cl-logger

Source

appenders.lisp (file)

Direct superclasses

formatter (class)

Direct methods
Class: logger ()
Package

a-cl-logger

Source

log.lisp (file)

Direct superclasses

standard-object (class)

Direct methods
Direct slots
Slot: name
Initargs

:name

Readers

name (generic function)

Writers

(setf name) (generic function)

Slot: signal-messages
Initargs

:signal-messages

Initform

t

Readers

signal-messages (generic function)

Writers

(setf signal-messages) (generic function)

Slot: default-signal-bindings
Initargs

:default-signal-bindings

Readers

default-signal-bindings (generic function)

Writers

(setf default-signal-bindings) (generic function)

Slot: parents

The logger this logger inherits from.

Initargs

:parents

Initform

(quote nil)

Readers

parents (generic function)

Writers

(setf parents) (generic function)

Slot: children

The logger which inherit from this logger.

Initargs

:children

Initform

(quote nil)

Readers

children (generic function)

Writers

(setf children) (generic function)

Slot: appenders

A list of appender objects this logger sholud send messages to.

Initargs

:appenders

Initform

(quote nil)

Readers

appenders (generic function)

Writers

(setf appenders) (generic function)

Slot: level

This loggers level.

Type

(or null integer)

Initargs

:level

Readers

level (generic function)

Writers

(setf level) (generic function)

Slot: compile-time-level

This loggers’s compile time level. Any log expression below this level will macro-expand to NIL.

Type

(or null integer)

Initargs

:compile-time-level

Readers

compile-time-level (generic function)

Writers

(setf compile-time-level) (generic function)

Class: message ()
Package

a-cl-logger

Source

log.lisp (file)

Direct superclasses

standard-object (class)

Direct methods
Direct slots
Slot: name
Initargs

:name

Readers

name (generic function)

Writers

(setf name) (generic function)

Slot: logger
Initargs

:logger

Readers

logger (generic function)

Writers

(setf logger) (generic function)

Slot: level
Initargs

:level

Readers

level (generic function)

Writers

(setf level) (generic function)

Slot: format-control
Initargs

:format-control

Readers

format-control (generic function)

Writers

(setf format-control) (generic function)

Slot: format-args
Initargs

:format-args

Readers

format-args (generic function)

Writers

(setf format-args) (generic function)

Slot: data-plist
Initargs

:data-plist

Readers

data-plist (generic function)

Writers

(setf data-plist) (generic function)

Slot: arg-literals
Initargs

:arg-literals

Readers

arg-literals (generic function)

Writers

(setf arg-literals) (generic function)

Slot: timestamp
Initargs

:timestamp

Initform

(local-time:now)

Readers

timestamp (generic function)

Writers

(setf timestamp) (generic function)

Class: raw-formatter ()

format the message with no annotations

Package

a-cl-logger

Source

appenders.lisp (file)

Direct superclasses

formatter (class)

Class: stderr-log-appender ()
Package

a-cl-logger

Source

appenders.lisp (file)

Direct superclasses

stream-log-appender (class)

Direct Default Initargs
InitargValue
:stream*error-output*
Class: stream-log-appender ()

Human readable to the console logger.

Package

a-cl-logger

Source

appenders.lisp (file)

Direct superclasses

appender (class)

Direct subclasses
Direct methods
Direct slots
Slot: stream
Initargs

:stream

Readers

log-stream (generic function)

Writers

(setf log-stream) (generic function)

Slot: date-format

Format to print dates. Format can be one of: (:iso :stamp :time)

Initargs

:date-format

Initform

:time

Class: string-stream-appender ()

a log that appends all messages into a string stream

Package

a-cl-logger

Source

appenders.lisp (file)

Direct superclasses

stream-log-appender (class)

Direct methods

initialize-instance (method)


Previous: , Up: Definitions   [Contents][Index]

5.2 Internal definitions


Next: , Previous: , Up: Internal definitions   [Contents][Index]

5.2.1 Special variables

Special Variable: *logger*
Package

a-cl-logger

Source

utils.lisp (file)

Special Variable: *logger-vars*
Package

a-cl-logger

Source

utils.lisp (file)

Special Variable: *max-logger-name-length*
Package

a-cl-logger

Source

utils.lisp (file)

Special Variable: +muted+
Package

a-cl-logger

Source

utils.lisp (file)


Next: , Previous: , Up: Internal definitions   [Contents][Index]

5.2.2 Macros

Macro: define-log-helpers LOGGER-NAME
Package

a-cl-logger

Source

log.lisp (file)

Macro: define-mutator-macros &rest NAMES

defines mutator macros for a function name
eg: ensure-account-id =>
(defmacro ensure-account-id! (&rest places) ... ) which (setf place (name place) for each place)

%name is just so we dont accidentally run into someone using name accidentally

Package

a-cl-logger

Source

utils.lisp (file)

Macro: ensure-level-value! &rest PLACES
Package

a-cl-logger

Source

utils.lisp (file)

Macro: ensure-list! &rest PLACES
Package

a-cl-logger

Source

utils.lisp (file)

Macro: ensure-message! &rest PLACES
Package

a-cl-logger

Source

utils.lisp (file)

Macro: maybe-with-presentations (OUTPUT-STREAM VAR &rest STREAM-PROPERTIES) &body BODY

Buffer the output to var, printing as if to a swank dedicated presentation stream, dumping to a freshline on the output-stream when done.

Package

a-cl-logger

Source

utils.lisp (file)

Macro: push-m-plist PLIST PLACE
Package

a-cl-logger

Source

utils.lisp (file)

Macro: root-logger.debug &rest @MESSAGE-ARGS
Package

a-cl-logger

Source

helpers.lisp (file)

Macro: root-logger.dribble &rest @MESSAGE-ARGS
Package

a-cl-logger

Source

helpers.lisp (file)

Macro: root-logger.error &rest @MESSAGE-ARGS
Package

a-cl-logger

Source

helpers.lisp (file)

Macro: root-logger.fatal &rest @MESSAGE-ARGS
Package

a-cl-logger

Source

helpers.lisp (file)

Macro: root-logger.info &rest @MESSAGE-ARGS
Package

a-cl-logger

Source

helpers.lisp (file)

Macro: root-logger.muted &rest @MESSAGE-ARGS
Package

a-cl-logger

Source

helpers.lisp (file)

Macro: root-logger.warn &rest @MESSAGE-ARGS
Package

a-cl-logger

Source

helpers.lisp (file)

Macro: when-log-message-* SIGNAL (&body HANDLER-BODY) &body BODY

A macro that allows appending data to the log message based on the dynamic context of the message as it is being generated.

The data-builder-form will be executed inside a context where (push-into-message key value) is a function to put data into the message the first form is

Inside of the handler body, a ‘change-message‘ restart is available

Ex: attaching information about the current http-context to log messages originating from it.

Package

a-cl-logger

Source

helpers.lisp (file)

Macro: when-log-message-logged (&body HANDLER-BODY) &body BODY
Package

a-cl-logger

Source

helpers.lisp (file)

Macro: with-auto-unique-names (&rest NAMES) &body BODY
Package

a-cl-logger

Source

utils.lisp (file)

Macro: with-change-message (MESSAGE-PLACE) &body BODY
Package

a-cl-logger

Source

log.lisp (file)

Macro: with-debugging-or-error-printing (LOGGER &key CONTINUE) &body BODY
Package

a-cl-logger

Source

utils.lisp (file)

Macro: with-logger-level LOGGER-NAME NEW-LEVEL &body BODY

Set the level of the listed logger(s) to NEW-LEVEL and restore the original value in an unwind-protect.

Package

a-cl-logger

Source

utils.lisp (file)

Macro: with-logging-io () &body BODY
Package

a-cl-logger

Source

utils.lisp (file)

Macro: with-macro-splicing (&rest NAMES) &body FORMS

Double quasi-quoting hurts my head so lets do it a bit different

Instead lets replace symbols in the expansion with values named by the same symbols in the expansion environment.

Obviously care needs to be taken when processing forms passed by the user, but that is the name of the macro game.

Variables starting with an @ (such as @body) are spliced as with ‘(progn ,@)

In the interest of enhanced readability it is suggested that all template variables start with $ or @ so that they stand out

eg:
(let ((@b ’(2 3))) (with-macro-splicing (($a 1) @b) (+ $a @b 4)))
=> (+ 1 2 3 4)

Package

a-cl-logger

Source

utils.lisp (file)

Macro: with-stream-restarts (S RECALL) &body BODY
Package

a-cl-logger

Source

appenders.lisp (file)


Next: , Previous: , Up: Internal definitions   [Contents][Index]

5.2.3 Functions

Function: %filter-plist MSG &optional EXCLUDE
Package

a-cl-logger

Source

appenders.lisp (file)

Function: %logger-name-for-output LOG &key WIDTH

Output the logger name such that it takes exactly :width characters and displays the right most :width characters if name is too long

this simplifies our formatting

Package

a-cl-logger

Source

log.lisp (file)

Function: %make-log-helper LOGGER MESSAGE-LEVEL-NAME

Creates macros like logger.debug to facilitate logging

Package

a-cl-logger

Source

log.lisp (file)

Function: %open-log-file UFLA
Package

a-cl-logger

Source

appenders.lisp (file)

Function: %safe-log-helper-arg FORM
Package

a-cl-logger

Source

log.lisp (file)

Function: as-json-array LIST
Package

a-cl-logger

Source

utils.lisp (file)

Function: as-json-object-member K V FORMATTER
Package

a-cl-logger

Source

utils.lisp (file)

Function: class-name-of O
Package

a-cl-logger

Source

utils.lisp (file)

Function: close-message-block OPEN MESSAGE
Package

a-cl-logger

Source

helpers.lisp (file)

Function: copy-messsage M &rest PLIST
Package

a-cl-logger

Source

log.lisp (file)

Function: enabled-p OBJECT CHECK-AGAINST
Package

a-cl-logger

Source

log.lisp (file)

Function: ensure-level-value LEVEL
Package

a-cl-logger

Source

log.lisp (file)

Function: ensure-message IT
Package

a-cl-logger

Source

utils.lisp (file)

Function: ensure-stream-appender LOGGER STREAM &key TYPE
Package

a-cl-logger

Source

appenders.lisp (file)

Function: ensure-type VAL TYPE
Package

a-cl-logger

Source

log.lisp (file)

Function: format-time &key STREAM TIME FORMAT
Package

a-cl-logger

Source

utils.lisp (file)

Function: get-logger-var-name NAME
Package

a-cl-logger

Source

log.lisp (file)

Function: logger-inspector-lookup-hook FORM
Package

a-cl-logger

Source

appenders.lisp (file)

Function: logger-level-from-helper NAME
Package

a-cl-logger

Source

log.lisp (file)

Function: logger-name-from-helper NAME
Package

a-cl-logger

Source

log.lisp (file)

Function: logger-signal-handlers LOGGER CONDITION
Package

a-cl-logger

Source

log.lisp (file)

Function: maybe-signal-appending-message LOGGER APPENDER MESSAGE
Package

a-cl-logger

Source

log.lisp (file)

Function: maybe-signal-generating-message MESSAGE
Package

a-cl-logger

Source

log.lisp (file)

Function: maybe-signal-logging-message LOGGER MESSAGE
Package

a-cl-logger

Source

log.lisp (file)

Function: maybe-signal-message C MESSAGE &aux *MESSAGE* LOGGER
Package

a-cl-logger

Source

log.lisp (file)

Function: me-or-ancestor LOGGER TO-MATCH
Package

a-cl-logger

Source

utils.lisp (file)

Function: missing-logger NAME
Package

a-cl-logger

Source

log.lisp (file)

Function: only-one? THING
Package

a-cl-logger

Source

utils.lisp (file)

Function: open-message-block MESSAGE
Package

a-cl-logger

Source

helpers.lisp (file)

Function: rem-logger NAME &aux VAR
Package

a-cl-logger

Source

log.lisp (file)

Function: replace-symbols-in-forms PLIST FORMS &aux TBL

Processor for forms using with-macro-splicing

Package

a-cl-logger

Source

utils.lisp (file)

Function: split-log-helper SYM
Package

a-cl-logger

Source

log.lisp (file)

Function: without-earmuffs SYMBOL
Package

a-cl-logger

Source

utils.lisp (file)


Next: , Previous: , Up: Internal definitions   [Contents][Index]

5.2.4 Generic functions

Generic Function: arg-literals OBJECT
Generic Function: (setf arg-literals) NEW-VALUE OBJECT
Package

a-cl-logger

Methods
Method: arg-literals (MESSAGE message)

automatically generated reader method

Source

log.lisp (file)

Method: (setf arg-literals) NEW-VALUE (MESSAGE message)

automatically generated writer method

Source

log.lisp (file)

Generic Function: buffer-p OBJECT
Generic Function: (setf buffer-p) NEW-VALUE OBJECT
Package

a-cl-logger

Methods
Method: buffer-p (FILE-LOG-APPENDER file-log-appender)

automatically generated reader method

Source

appenders.lisp (file)

Method: (setf buffer-p) NEW-VALUE (FILE-LOG-APPENDER file-log-appender)

automatically generated writer method

Source

appenders.lisp (file)

Generic Function: compile-time-enabled-p MESSAGE-LEVEL LOGGER
Package

a-cl-logger

Source

log.lisp (file)

Methods
Method: compile-time-enabled-p MESSAGE-LEVEL LOGGER
Generic Function: compile-time-level OBJECT
Generic Function: (setf compile-time-level) NEW-VALUE OBJECT
Package

a-cl-logger

Methods
Method: compile-time-level (LOGGER logger)
Method: (setf compile-time-level) NEW-VALUE (LOGGER logger)

This loggers’s compile time level. Any log expression below this level will macro-expand to NIL.

Source

log.lisp (file)

Generic Function: do-append LOGGER APPENDER MESSAGE
Package

a-cl-logger

Source

log.lisp (file)

Methods
Method: do-append LOG APPENDER MESSAGE around
Method: do-append LOG APPENDER MESSAGE
Generic Function: form CONDITION
Generic Function: (setf form) NEW-VALUE CONDITION
Package

a-cl-logger

Methods
Method: form (CONDITION log-argument-evaluation-error)
Method: (setf form) NEW-VALUE (CONDITION log-argument-evaluation-error)
Source

log.lisp (file)

Generic Function: format-value V FORMATTER
Package

a-cl-logger

Source

appenders.lisp (file)

Methods
Method: format-value V FORMATTER
Method: format-value V (F json-formatter)
Generic Function: inner-error CONDITION
Generic Function: (setf inner-error) NEW-VALUE CONDITION
Package

a-cl-logger

Methods
Method: inner-error (CONDITION log-argument-evaluation-error)
Method: (setf inner-error) NEW-VALUE (CONDITION log-argument-evaluation-error)
Source

log.lisp (file)

Generic Function: log-file OBJECT
Generic Function: (setf log-file) NEW-VALUE OBJECT
Package

a-cl-logger

Methods
Method: log-file (FILE-LOG-APPENDER file-log-appender)
Method: (setf log-file) NEW-VALUE (FILE-LOG-APPENDER file-log-appender)

Name of the file to write log messages to.

Source

appenders.lisp (file)

Method: (setf log-file) VAL (UFLA file-log-appender) after
Source

appenders.lisp (file)

Generic Function: log.compile-time-level LOG
Package

a-cl-logger

Source

log.lisp (file)

Writer

(setf log.compile-time-level) (generic function)

Methods
Method: log.compile-time-level LOG
Generic Function: (setf log.compile-time-level) NEW LOG &optional RECURSIVE

Change the compile time log level of logger to NEW-LEVEL. If RECUSIVE is T the setting is also applied to the sub loggers.

Package

a-cl-logger

Source

log.lisp (file)

Reader

log.compile-time-level (generic function)

Methods
Method: (setf log.compile-time-level) NEW-LEVEL LOG &optional RECURSIVE
Generic Function: signal-messages OBJECT
Generic Function: (setf signal-messages) NEW-VALUE OBJECT
Package

a-cl-logger

Methods
Method: signal-messages (LOGGER logger)

automatically generated reader method

Source

log.lisp (file)

Method: (setf signal-messages) NEW-VALUE (LOGGER logger)

automatically generated writer method

Source

log.lisp (file)

Generic Function: timestamp OBJECT
Generic Function: (setf timestamp) NEW-VALUE OBJECT
Package

a-cl-logger

Methods
Method: timestamp (MESSAGE message)

automatically generated reader method

Source

log.lisp (file)

Method: (setf timestamp) NEW-VALUE (MESSAGE message)

automatically generated writer method

Source

log.lisp (file)


Next: , Previous: , Up: Internal definitions   [Contents][Index]

5.2.5 Conditions

Condition: log-argument-evaluation-error ()
Package

a-cl-logger

Source

log.lisp (file)

Direct superclasses

error (condition)

Direct methods
Direct slots
Slot: form
Initargs

:form

Initform

(quote nil)

Readers

form (generic function)

Writers

(setf form) (generic function)

Slot: inner-error
Initargs

:inner-error

Initform

(quote nil)

Readers

inner-error (generic function)

Writers

(setf inner-error) (generic function)

Condition: missing-logger ()
Package

a-cl-logger

Source

log.lisp (file)

Direct superclasses

error (condition)

Direct methods
  • name (method)
  • name (method)
Direct slots
Slot: name
Initargs

:name

Initform

(quote nil)

Readers

name (generic function)

Writers

(setf name) (generic function)


Previous: , Up: Internal definitions   [Contents][Index]

5.2.6 Classes

Class: json-file-log-appender ()
Package

a-cl-logger

Source

appenders.lisp (file)

Direct superclasses

file-log-appender (class)

Direct Default Initargs
InitargValue
:date-format:iso
:formatter(quote a-cl-logger:json-formatter)

Previous: , Up: Top   [Contents][Index]

Appendix A Indexes


Next: , Previous: , Up: Indexes   [Contents][Index]

A.1 Concepts

Jump to:   A   F   L  
Index Entry  Section

A
a-cl-logger.asd: The a-cl-logger<dot>asd file
a-cl-logger/appenders.lisp: The a-cl-logger/appenders<dot>lisp file
a-cl-logger/helpers.lisp: The a-cl-logger/helpers<dot>lisp file
a-cl-logger/log.lisp: The a-cl-logger/log<dot>lisp file
a-cl-logger/packages.lisp: The a-cl-logger/packages<dot>lisp file
a-cl-logger/utils.lisp: The a-cl-logger/utils<dot>lisp file

F
File, Lisp, a-cl-logger.asd: The a-cl-logger<dot>asd file
File, Lisp, a-cl-logger/appenders.lisp: The a-cl-logger/appenders<dot>lisp file
File, Lisp, a-cl-logger/helpers.lisp: The a-cl-logger/helpers<dot>lisp file
File, Lisp, a-cl-logger/log.lisp: The a-cl-logger/log<dot>lisp file
File, Lisp, a-cl-logger/packages.lisp: The a-cl-logger/packages<dot>lisp file
File, Lisp, a-cl-logger/utils.lisp: The a-cl-logger/utils<dot>lisp file

L
Lisp File, a-cl-logger.asd: The a-cl-logger<dot>asd file
Lisp File, a-cl-logger/appenders.lisp: The a-cl-logger/appenders<dot>lisp file
Lisp File, a-cl-logger/helpers.lisp: The a-cl-logger/helpers<dot>lisp file
Lisp File, a-cl-logger/log.lisp: The a-cl-logger/log<dot>lisp file
Lisp File, a-cl-logger/packages.lisp: The a-cl-logger/packages<dot>lisp file
Lisp File, a-cl-logger/utils.lisp: The a-cl-logger/utils<dot>lisp file

Jump to:   A   F   L  

Next: , Previous: , Up: Indexes   [Contents][Index]

A.2 Functions

Jump to:   %   (  
A   B   C   D   E   F   G   I   J   L   M   N   O   P   R   S   T   W  
Index Entry  Section

%
%filter-plist: Internal functions
%logger-name-for-output: Internal functions
%make-log-helper: Internal functions
%open-log-file: Internal functions
%safe-log-helper-arg: Internal functions

(
(setf appender): Exported generic functions
(setf appender): Exported generic functions
(setf appenders): Exported generic functions
(setf appenders): Exported generic functions
(setf arg-literals): Internal generic functions
(setf arg-literals): Internal generic functions
(setf buffer-p): Internal generic functions
(setf buffer-p): Internal generic functions
(setf children): Exported generic functions
(setf children): Exported generic functions
(setf compile-time-level): Internal generic functions
(setf compile-time-level): Internal generic functions
(setf data-plist): Exported generic functions
(setf data-plist): Exported generic functions
(setf default-signal-bindings): Exported generic functions
(setf default-signal-bindings): Exported generic functions
(setf form): Internal generic functions
(setf form): Internal generic functions
(setf format-args): Exported generic functions
(setf format-args): Exported generic functions
(setf format-control): Exported generic functions
(setf format-control): Exported generic functions
(setf formatter): Exported generic functions
(setf formatter): Exported generic functions
(setf get-logger): Exported functions
(setf inner-error): Internal generic functions
(setf inner-error): Internal generic functions
(setf json): Exported generic functions
(setf json): Exported generic functions
(setf level): Exported generic functions
(setf level): Exported generic functions
(setf level): Exported generic functions
(setf level): Exported generic functions
(setf log-file): Internal generic functions
(setf log-file): Internal generic functions
(setf log-file): Internal generic functions
(setf log-level): Exported generic functions
(setf log-level): Exported generic functions
(setf log-level): Exported generic functions
(setf log-stream): Exported generic functions
(setf log-stream): Exported generic functions
(setf log.compile-time-level): Internal generic functions
(setf log.compile-time-level): Internal generic functions
(setf logger): Exported generic functions
(setf logger): Exported generic functions
(setf logger): Exported generic functions
(setf logger): Exported generic functions
(setf message): Exported generic functions
(setf message): Exported generic functions
(setf message): Exported generic functions
(setf message): Exported generic functions
(setf name): Exported generic functions
(setf name): Exported generic functions
(setf name): Exported generic functions
(setf name): Exported generic functions
(setf parents): Exported generic functions
(setf parents): Exported generic functions
(setf signal-messages): Internal generic functions
(setf signal-messages): Internal generic functions
(setf timestamp): Internal generic functions
(setf timestamp): Internal generic functions

A
add-signal-handler: Exported functions
alist-as-json: Exported functions
append-message: Exported generic functions
append-message: Exported generic functions
append-message: Exported generic functions
appender: Exported generic functions
appender: Exported generic functions
appenders: Exported generic functions
appenders: Exported generic functions
arg-literals: Internal generic functions
arg-literals: Internal generic functions
as-json-array: Internal functions
as-json-object-member: Internal functions

B
buffer-p: Internal generic functions
buffer-p: Internal generic functions

C
children: Exported generic functions
children: Exported generic functions
class-name-of: Internal functions
close-all-files: Exported functions
close-message-block: Internal functions
compile-time-enabled-p: Internal generic functions
compile-time-enabled-p: Internal generic functions
compile-time-level: Internal generic functions
compile-time-level: Internal generic functions
copy-messsage: Internal functions

D
data-plist: Exported generic functions
data-plist: Exported generic functions
default-signal-bindings: Exported generic functions
default-signal-bindings: Exported generic functions
define-log-helpers: Internal macros
define-logger: Exported macros
define-mutator-macros: Internal macros
do-append: Internal generic functions
do-append: Internal generic functions
do-append: Internal generic functions
do-log: Exported functions
do-logging: Exported generic functions
do-logging: Exported generic functions
do-logging: Exported generic functions
do-logging: Exported generic functions

E
enabled-p: Internal functions
ensure-debug-io-appender: Exported functions
ensure-file-appender: Exported functions
ensure-level-value: Internal functions
ensure-level-value!: Internal macros
ensure-list!: Internal macros
ensure-message: Internal functions
ensure-message!: Internal macros
ensure-stderr-appender: Exported functions
ensure-stream-appender: Internal functions
ensure-type: Internal functions

F
find-appender: Exported functions
form: Internal generic functions
form: Internal generic functions
format-args: Exported generic functions
format-args: Exported generic functions
format-control: Exported generic functions
format-control: Exported generic functions
format-message: Exported generic functions
format-message: Exported generic functions
format-message: Exported generic functions
format-time: Internal functions
format-value: Internal generic functions
format-value: Internal generic functions
format-value: Internal generic functions
formatter: Exported generic functions
formatter: Exported generic functions
Function, %filter-plist: Internal functions
Function, %logger-name-for-output: Internal functions
Function, %make-log-helper: Internal functions
Function, %open-log-file: Internal functions
Function, %safe-log-helper-arg: Internal functions
Function, (setf get-logger): Exported functions
Function, add-signal-handler: Exported functions
Function, alist-as-json: Exported functions
Function, as-json-array: Internal functions
Function, as-json-object-member: Internal functions
Function, class-name-of: Internal functions
Function, close-all-files: Exported functions
Function, close-message-block: Internal functions
Function, copy-messsage: Internal functions
Function, do-log: Exported functions
Function, enabled-p: Internal functions
Function, ensure-debug-io-appender: Exported functions
Function, ensure-file-appender: Exported functions
Function, ensure-level-value: Internal functions
Function, ensure-message: Internal functions
Function, ensure-stderr-appender: Exported functions
Function, ensure-stream-appender: Internal functions
Function, ensure-type: Internal functions
Function, find-appender: Exported functions
Function, format-time: Internal functions
Function, get-log-fn: Exported functions
Function, get-logger: Exported functions
Function, get-logger-var-name: Internal functions
Function, log-level-name-of: Exported functions
Function, logger-inspector-lookup-hook: Internal functions
Function, logger-level-from-helper: Internal functions
Function, logger-name-from-helper: Internal functions
Function, logger-signal-handlers: Internal functions
Function, make-log-path: Exported functions
Function, make-message: Exported functions
Function, maybe-signal-appending-message: Internal functions
Function, maybe-signal-generating-message: Internal functions
Function, maybe-signal-logging-message: Internal functions
Function, maybe-signal-message: Internal functions
Function, me-or-ancestor: Internal functions
Function, missing-logger: Internal functions
Function, only-one?: Internal functions
Function, open-message-block: Internal functions
Function, plist-as-json: Exported functions
Function, push-into-message: Exported functions
Function, rem-logger: Internal functions
Function, remove-appender: Exported functions
Function, replace-symbols-in-forms: Internal functions
Function, require-logger: Exported functions
Function, setup-logger: Exported functions
Function, split-log-helper: Internal functions
Function, without-earmuffs: Internal functions

G
Generic Function, (setf appender): Exported generic functions
Generic Function, (setf appenders): Exported generic functions
Generic Function, (setf arg-literals): Internal generic functions
Generic Function, (setf buffer-p): Internal generic functions
Generic Function, (setf children): Exported generic functions
Generic Function, (setf compile-time-level): Internal generic functions
Generic Function, (setf data-plist): Exported generic functions
Generic Function, (setf default-signal-bindings): Exported generic functions
Generic Function, (setf form): Internal generic functions
Generic Function, (setf format-args): Exported generic functions
Generic Function, (setf format-control): Exported generic functions
Generic Function, (setf formatter): Exported generic functions
Generic Function, (setf inner-error): Internal generic functions
Generic Function, (setf json): Exported generic functions
Generic Function, (setf level): Exported generic functions
Generic Function, (setf log-file): Internal generic functions
Generic Function, (setf log-level): Exported generic functions
Generic Function, (setf log-stream): Exported generic functions
Generic Function, (setf log.compile-time-level): Internal generic functions
Generic Function, (setf logger): Exported generic functions
Generic Function, (setf message): Exported generic functions
Generic Function, (setf name): Exported generic functions
Generic Function, (setf parents): Exported generic functions
Generic Function, (setf signal-messages): Internal generic functions
Generic Function, (setf timestamp): Internal generic functions
Generic Function, append-message: Exported generic functions
Generic Function, appender: Exported generic functions
Generic Function, appenders: Exported generic functions
Generic Function, arg-literals: Internal generic functions
Generic Function, buffer-p: Internal generic functions
Generic Function, children: Exported generic functions
Generic Function, compile-time-enabled-p: Internal generic functions
Generic Function, compile-time-level: Internal generic functions
Generic Function, data-plist: Exported generic functions
Generic Function, default-signal-bindings: Exported generic functions
Generic Function, do-append: Internal generic functions
Generic Function, do-logging: Exported generic functions
Generic Function, form: Internal generic functions
Generic Function, format-args: Exported generic functions
Generic Function, format-control: Exported generic functions
Generic Function, format-message: Exported generic functions
Generic Function, format-value: Internal generic functions
Generic Function, formatter: Exported generic functions
Generic Function, inner-error: Internal generic functions
Generic Function, json: Exported generic functions
Generic Function, level: Exported generic functions
Generic Function, log-file: Internal generic functions
Generic Function, log-level: Exported generic functions
Generic Function, log-stream: Exported generic functions
Generic Function, log.compile-time-level: Internal generic functions
Generic Function, logger: Exported generic functions
Generic Function, message: Exported generic functions
Generic Function, name: Exported generic functions
Generic Function, parents: Exported generic functions
Generic Function, signal-messages: Internal generic functions
Generic Function, timestamp: Internal generic functions
get-log-fn: Exported functions
get-logger: Exported functions
get-logger!: Exported macros
get-logger-var-name: Internal functions

I
inner-error: Internal generic functions
inner-error: Internal generic functions

J
json: Exported generic functions
json: Exported generic functions

L
level: Exported generic functions
level: Exported generic functions
level: Exported generic functions
level: Exported generic functions
log-around: Exported macros
log-errors: Exported macros
log-file: Internal generic functions
log-file: Internal generic functions
log-level: Exported generic functions
log-level: Exported generic functions
log-level: Exported generic functions
log-level-name-of: Exported functions
log-serious-conditions: Exported macros
log-stream: Exported generic functions
log-stream: Exported generic functions
log.compile-time-level: Internal generic functions
log.compile-time-level: Internal generic functions
logger: Exported generic functions
logger: Exported generic functions
logger: Exported generic functions
logger: Exported generic functions
logger-inspector-lookup-hook: Internal functions
logger-level-from-helper: Internal functions
logger-name-from-helper: Internal functions
logger-signal-handlers: Internal functions

M
Macro, define-log-helpers: Internal macros
Macro, define-logger: Exported macros
Macro, define-mutator-macros: Internal macros
Macro, ensure-level-value!: Internal macros
Macro, ensure-list!: Internal macros
Macro, ensure-message!: Internal macros
Macro, get-logger!: Exported macros
Macro, log-around: Exported macros
Macro, log-errors: Exported macros
Macro, log-serious-conditions: Exported macros
Macro, maybe-with-presentations: Internal macros
Macro, push-m-plist: Internal macros
Macro, require-logger!: Exported macros
Macro, root-logger.debug: Internal macros
Macro, root-logger.dribble: Internal macros
Macro, root-logger.error: Internal macros
Macro, root-logger.fatal: Internal macros
Macro, root-logger.info: Internal macros
Macro, root-logger.muted: Internal macros
Macro, root-logger.warn: Internal macros
Macro, when-log-message-*: Internal macros
Macro, when-log-message-appended: Exported macros
Macro, when-log-message-generated: Exported macros
Macro, when-log-message-logged: Internal macros
Macro, with-appender: Exported macros
Macro, with-auto-unique-names: Internal macros
Macro, with-change-message: Internal macros
Macro, with-debugging-or-error-printing: Internal macros
Macro, with-logged-output: Exported macros
Macro, with-logged-output-to-place: Exported macros
Macro, with-logger-level: Internal macros
Macro, with-logging-io: Internal macros
Macro, with-macro-splicing: Internal macros
Macro, with-stream-restarts: Internal macros
make-log-path: Exported functions
make-message: Exported functions
maybe-signal-appending-message: Internal functions
maybe-signal-generating-message: Internal functions
maybe-signal-logging-message: Internal functions
maybe-signal-message: Internal functions
maybe-with-presentations: Internal macros
me-or-ancestor: Internal functions
message: Exported generic functions
message: Exported generic functions
message: Exported generic functions
message: Exported generic functions
Method, (setf appender): Exported generic functions
Method, (setf appenders): Exported generic functions
Method, (setf arg-literals): Internal generic functions
Method, (setf buffer-p): Internal generic functions
Method, (setf children): Exported generic functions
Method, (setf compile-time-level): Internal generic functions
Method, (setf data-plist): Exported generic functions
Method, (setf default-signal-bindings): Exported generic functions
Method, (setf form): Internal generic functions
Method, (setf format-args): Exported generic functions
Method, (setf format-control): Exported generic functions
Method, (setf formatter): Exported generic functions
Method, (setf inner-error): Internal generic functions
Method, (setf json): Exported generic functions
Method, (setf level): Exported generic functions
Method, (setf level): Exported generic functions
Method, (setf level): Exported generic functions
Method, (setf log-file): Internal generic functions
Method, (setf log-file): Internal generic functions
Method, (setf log-level): Exported generic functions
Method, (setf log-level): Exported generic functions
Method, (setf log-stream): Exported generic functions
Method, (setf log.compile-time-level): Internal generic functions
Method, (setf logger): Exported generic functions
Method, (setf logger): Exported generic functions
Method, (setf logger): Exported generic functions
Method, (setf message): Exported generic functions
Method, (setf message): Exported generic functions
Method, (setf message): Exported generic functions
Method, (setf name): Exported generic functions
Method, (setf name): Exported generic functions
Method, (setf name): Exported generic functions
Method, (setf parents): Exported generic functions
Method, (setf signal-messages): Internal generic functions
Method, (setf timestamp): Internal generic functions
Method, append-message: Exported generic functions
Method, append-message: Exported generic functions
Method, appender: Exported generic functions
Method, appenders: Exported generic functions
Method, arg-literals: Internal generic functions
Method, buffer-p: Internal generic functions
Method, children: Exported generic functions
Method, compile-time-enabled-p: Internal generic functions
Method, compile-time-level: Internal generic functions
Method, data-plist: Exported generic functions
Method, default-signal-bindings: Exported generic functions
Method, do-append: Internal generic functions
Method, do-append: Internal generic functions
Method, do-logging: Exported generic functions
Method, do-logging: Exported generic functions
Method, do-logging: Exported generic functions
Method, form: Internal generic functions
Method, format-args: Exported generic functions
Method, format-control: Exported generic functions
Method, format-message: Exported generic functions
Method, format-message: Exported generic functions
Method, format-value: Internal generic functions
Method, format-value: Internal generic functions
Method, formatter: Exported generic functions
Method, inner-error: Internal generic functions
Method, json: Exported generic functions
Method, level: Exported generic functions
Method, level: Exported generic functions
Method, level: Exported generic functions
Method, log-file: Internal generic functions
Method, log-level: Exported generic functions
Method, log-level: Exported generic functions
Method, log-stream: Exported generic functions
Method, log.compile-time-level: Internal generic functions
Method, logger: Exported generic functions
Method, logger: Exported generic functions
Method, logger: Exported generic functions
Method, message: Exported generic functions
Method, message: Exported generic functions
Method, message: Exported generic functions
Method, name: Exported generic functions
Method, name: Exported generic functions
Method, name: Exported generic functions
Method, parents: Exported generic functions
Method, signal-messages: Internal generic functions
Method, timestamp: Internal generic functions
missing-logger: Internal functions

N
name: Exported generic functions
name: Exported generic functions
name: Exported generic functions
name: Exported generic functions

O
only-one?: Internal functions
open-message-block: Internal functions

P
parents: Exported generic functions
parents: Exported generic functions
plist-as-json: Exported functions
push-into-message: Exported functions
push-m-plist: Internal macros

R
rem-logger: Internal functions
remove-appender: Exported functions
replace-symbols-in-forms: Internal functions
require-logger: Exported functions
require-logger!: Exported macros
root-logger.debug: Internal macros
root-logger.dribble: Internal macros
root-logger.error: Internal macros
root-logger.fatal: Internal macros
root-logger.info: Internal macros
root-logger.muted: Internal macros
root-logger.warn: Internal macros

S
setup-logger: Exported functions
signal-messages: Internal generic functions
signal-messages: Internal generic functions
split-log-helper: Internal functions

T
timestamp: Internal generic functions
timestamp: Internal generic functions

W
when-log-message-*: Internal macros
when-log-message-appended: Exported macros
when-log-message-generated: Exported macros
when-log-message-logged: Internal macros
with-appender: Exported macros
with-auto-unique-names: Internal macros
with-change-message: Internal macros
with-debugging-or-error-printing: Internal macros
with-logged-output: Exported macros
with-logged-output-to-place: Exported macros
with-logger-level: Internal macros
with-logging-io: Internal macros
with-macro-splicing: Internal macros
with-stream-restarts: Internal macros
without-earmuffs: Internal functions

Jump to:   %   (  
A   B   C   D   E   F   G   I   J   L   M   N   O   P   R   S   T   W  

Next: , Previous: , Up: Indexes   [Contents][Index]

A.3 Variables

Jump to:   *   +  
A   B   C   D   F   I   J   L   M   N   P   S   T  
Index Entry  Section

*
*appender*: Exported special variables
*log-level-names*: Exported special variables
*logger*: Internal special variables
*logger-vars*: Internal special variables
*max-logger-name-length*: Internal special variables
*message*: Exported special variables
*root-logger*: Exported special variables

+
+debug+: Exported special variables
+dribble+: Exported special variables
+error+: Exported special variables
+fatal+: Exported special variables
+info+: Exported special variables
+muted+: Internal special variables
+warn+: Exported special variables

A
appender: Exported conditions
appenders: Exported classes
arg-literals: Exported classes

B
buffer-p: Exported classes

C
children: Exported classes
compile-time-level: Exported classes

D
data-plist: Exported classes
date-format: Exported classes
default-signal-bindings: Exported classes

F
form: Internal conditions
format-args: Exported classes
format-control: Exported classes
formatter: Exported classes

I
inner-error: Internal conditions

J
json: Exported classes

L
level: Exported classes
level: Exported classes
level: Exported classes
log-file: Exported classes
logger: Exported conditions
logger: Exported conditions
logger: Exported classes

M
message: Exported conditions
message: Exported conditions
message: Exported conditions

N
name: Exported classes
name: Exported classes
name: Internal conditions

P
parents: Exported classes

S
signal-messages: Exported classes
Slot, appender: Exported conditions
Slot, appenders: Exported classes
Slot, arg-literals: Exported classes
Slot, buffer-p: Exported classes
Slot, children: Exported classes
Slot, compile-time-level: Exported classes
Slot, data-plist: Exported classes
Slot, date-format: Exported classes
Slot, default-signal-bindings: Exported classes
Slot, form: Internal conditions
Slot, format-args: Exported classes
Slot, format-control: Exported classes
Slot, formatter: Exported classes
Slot, inner-error: Internal conditions
Slot, json: Exported classes
Slot, level: Exported classes
Slot, level: Exported classes
Slot, level: Exported classes
Slot, log-file: Exported classes
Slot, logger: Exported conditions
Slot, logger: Exported conditions
Slot, logger: Exported classes
Slot, message: Exported conditions
Slot, message: Exported conditions
Slot, message: Exported conditions
Slot, name: Exported classes
Slot, name: Exported classes
Slot, name: Internal conditions
Slot, parents: Exported classes
Slot, signal-messages: Exported classes
Slot, stream: Exported classes
Slot, timestamp: Exported classes
Special Variable, *appender*: Exported special variables
Special Variable, *log-level-names*: Exported special variables
Special Variable, *logger*: Internal special variables
Special Variable, *logger-vars*: Internal special variables
Special Variable, *max-logger-name-length*: Internal special variables
Special Variable, *message*: Exported special variables
Special Variable, *root-logger*: Exported special variables
Special Variable, +debug+: Exported special variables
Special Variable, +dribble+: Exported special variables
Special Variable, +error+: Exported special variables
Special Variable, +fatal+: Exported special variables
Special Variable, +info+: Exported special variables
Special Variable, +muted+: Internal special variables
Special Variable, +warn+: Exported special variables
stream: Exported classes

T
timestamp: Exported classes

Jump to:   *   +  
A   B   C   D   F   I   J   L   M   N   P   S   T  

Previous: , Up: Indexes   [Contents][Index]

A.4 Data types

Jump to:   A   C   D   F   G   J   L   M   P   R   S  
Index Entry  Section

A
a-cl-logger: The a-cl-logger system
a-cl-logger: The a-cl-logger package
a-cl-logger.system: The a-cl-logger<dot>system package
appender: Exported classes
appending-message: Exported conditions

C
Class, appender: Exported classes
Class, debug-io-log-appender: Exported classes
Class, file-log-appender: Exported classes
Class, formatter: Exported classes
Class, json: Exported classes
Class, json-file-log-appender: Internal classes
Class, json-formatter: Exported classes
Class, logger: Exported classes
Class, message: Exported classes
Class, raw-formatter: Exported classes
Class, stderr-log-appender: Exported classes
Class, stream-log-appender: Exported classes
Class, string-stream-appender: Exported classes
Condition, appending-message: Exported conditions
Condition, generating-message: Exported conditions
Condition, log-argument-evaluation-error: Internal conditions
Condition, logging-message: Exported conditions
Condition, missing-logger: Internal conditions

D
debug-io-log-appender: Exported classes

F
file-log-appender: Exported classes
formatter: Exported classes

G
generating-message: Exported conditions

J
json: Exported classes
json-file-log-appender: Internal classes
json-formatter: Exported classes

L
log-argument-evaluation-error: Internal conditions
logger: Exported classes
logging-message: Exported conditions

M
message: Exported classes
missing-logger: Internal conditions

P
Package, a-cl-logger: The a-cl-logger package
Package, a-cl-logger.system: The a-cl-logger<dot>system package

R
raw-formatter: Exported classes

S
stderr-log-appender: Exported classes
stream-log-appender: Exported classes
string-stream-appender: Exported classes
System, a-cl-logger: The a-cl-logger system

Jump to:   A   C   D   F   G   J   L   M   P   R   S