The hu.dwim.logger Reference Manual

Table of Contents

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

The hu.dwim.logger Reference Manual

This is the hu.dwim.logger Reference Manual, generated automatically by Declt version 2.4 "Will Decker" on Wed Jun 20 11:57:48 2018 GMT+0.


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

1 Introduction

http://dwim.hu/project/hu.dwim.logger


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 hu.dwim.logger

Authors

Tamás Borbély <tomi.borbely@gmail.com>
Attila Lendvai <attila.lendvai@gmail.com>
Levente Mészáros <levente.meszaros@gmail.com>

License

BSD or Bugroff

Description

Generic purpose logger utility.

Defsystem Dependency

hu.dwim.asdf

Dependencies
Source

hu.dwim.logger.asd (file)

Component

source (module)


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

3 Modules

Modules are listed depth-first from the system components tree.


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

3.1 hu.dwim.logger/source

Parent

hu.dwim.logger (system)

Location

source/

Components

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

4 Files

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


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

4.1 Lisp


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

4.1.1 hu.dwim.logger.asd

Location

hu.dwim.logger.asd

Systems

hu.dwim.logger (system)


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

4.1.2 hu.dwim.logger/source/api.lisp

Dependency

package.lisp (file)

Parent

source (module)

Location

source/api.lisp

Exported Definitions
Internal Definitions

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

4.1.3 hu.dwim.logger/source/appender.lisp

Dependencies
Parent

source (module)

Location

source/appender.lisp

Exported Definitions
Internal Definitions

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

4.1.4 hu.dwim.logger/source/formatter.lisp

Dependencies
Parent

source (module)

Location

source/formatter.lisp

Exported Definitions
Internal Definitions

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

4.1.5 hu.dwim.logger/source/logger.lisp

Dependency

api.lisp (file)

Parent

source (module)

Location

source/logger.lisp

Exported Definitions
Internal Definitions

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

4.1.6 hu.dwim.logger/source/package.lisp

Parent

source (module)

Location

source/package.lisp

Packages

hu.dwim.logger


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

4.1.7 hu.dwim.logger/source/root-logger.lisp

Dependencies
Parent

source (module)

Location

source/root-logger.lisp

Exported Definitions

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

5 Packages

Packages are listed by definition order.


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

5.1 hu.dwim.logger

Source

package.lisp (file)

Use List
Exported Definitions
Internal Definitions

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

6 Definitions

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


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

6.1 Exported definitions


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

6.1.1 Constants

Constant: +debug+
Package

hu.dwim.logger

Source

logger.lisp (file)

Constant: +dribble+
Package

hu.dwim.logger

Source

logger.lisp (file)

Constant: +error+
Package

hu.dwim.logger

Source

logger.lisp (file)

Constant: +fatal+
Package

hu.dwim.logger

Source

logger.lisp (file)

Constant: +info+
Package

hu.dwim.logger

Source

logger.lisp (file)

Constant: +log-level-keywords+
Package

hu.dwim.logger

Source

logger.lisp (file)

Constant: +log-level-names+
Package

hu.dwim.logger

Source

logger.lisp (file)

Constant: +warn+
Package

hu.dwim.logger

Source

logger.lisp (file)


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

6.1.2 Special variables

Special Variable: *log-directory*
Package

hu.dwim.logger

Source

appender.lisp (file)


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

6.1.3 Macros

Macro: deflogger NAME PARENTS &key ACCESSOR-NAME-PREFIX COMPILE-TIME-LEVEL RUNTIME-LEVEL APPENDER APPENDERS DOCUMENTATION
Package

hu.dwim.logger

Source

logger.lisp (file)

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

hu.dwim.logger

Source

root-logger.lisp (file)

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

hu.dwim.logger

Source

root-logger.lisp (file)

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

hu.dwim.logger

Source

root-logger.lisp (file)

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

hu.dwim.logger

Source

root-logger.lisp (file)

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

hu.dwim.logger

Source

root-logger.lisp (file)

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

hu.dwim.logger

Source

root-logger.lisp (file)

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

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

Package

hu.dwim.logger

Source

logger.lisp (file)


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

6.1.4 Compiler macros

Compiler Macro: find-logger NAME &key OTHERWISE
Package

hu.dwim.logger

Source

logger.lisp (file)


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

6.1.5 Functions

Function: find-logger NAME &key OTHERWISE
Function: (setf find-logger) LOGGER NAME
Package

hu.dwim.logger

Source

logger.lisp (file)

Function: flush-caching-appender APPENDER
Package

hu.dwim.logger

Source

appender.lisp (file)

Function: flush-caching-appenders ()
Package

hu.dwim.logger

Source

appender.lisp (file)

Function: log-level LOGGER
Function: (setf log-level) NEW-VALUE LOGGER
Package

hu.dwim.logger

Source

logger.lisp (file)

Function: log-level/compile-time LOGGER
Function: (setf log-level/compile-time) NEW-LEVEL LOGGER &key RECURSIVE
Package

hu.dwim.logger

Source

logger.lisp (file)

Function: log-level/runtime LOGGER
Function: (setf log-level/runtime) NEW-LEVEL LOGGER &key RECURSIVE
Package

hu.dwim.logger

Source

logger.lisp (file)

Function: log-to-console FORMAT-CONTROL &rest FORMAT-ARGUMENTS
Package

hu.dwim.logger

Source

api.lisp (file)

Function: make-file-appender FILE-NAME &key FORMATTER
Package

hu.dwim.logger

Source

appender.lisp (file)

Function: make-level-filtering-appender MINIMUM-LEVEL &rest CHAINED-APPENDERS
Package

hu.dwim.logger

Source

appender.lisp (file)

Function: make-stream-appender &rest ARGS &key STREAM VERBOSITY &allow-other-keys
Package

hu.dwim.logger

Source

appender.lisp (file)

Function: make-thread-safe-file-appender FILE-NAME &key FORMATTER
Package

hu.dwim.logger

Source

appender.lisp (file)

Function: make-thread-safe-stream-appender STREAM &key FORMATTER LAZY-FLUSHING
Package

hu.dwim.logger

Source

appender.lisp (file)

Function: set-log-level LOGGER LEVEL
Package

hu.dwim.logger

Source

logger.lisp (file)

Function: setup-logging-for-production LOG-DIRECTORY
Package

hu.dwim.logger

Source

root-logger.lisp (file)


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

6.1.6 Generic functions

Generic Function: append-message LOGGER APPENDER LEVEL MESSAGE-CONTROL MESSAGE-ARGUMENTS

The second line of the log message handling. Called for each logger-appender pair that receives this log message.

Package

hu.dwim.logger

Source

api.lisp (file)

Methods
Method: append-message (LOGGER logger) (APPENDER caching-appender) LEVEL MESSAGE-CONTROL MESSAGE-ARGUMENTS
Source

appender.lisp (file)

Method: append-message (LOGGER logger) (APPENDER level-filtering-appender) LEVEL MESSAGE-CONTROL MESSAGE-ARGUMENTS
Source

appender.lisp (file)

Method: append-message (LOGGER logger) (APPENDER file-appender) LEVEL MESSAGE-CONTROL MESSAGE-ARGUMENTS
Source

appender.lisp (file)

Method: append-message (LOGGER logger) (APPENDER stream-appender) LEVEL MESSAGE-CONTROL MESSAGE-ARGUMENTS around
Source

appender.lisp (file)

Method: append-message LOGGER (APPENDER stream-appender) LEVEL MESSAGE-CONTROL MESSAGE-ARGUMENTS
Source

appender.lisp (file)

Generic Function: format-message LOGGER APPENDER FORMATTER LEVEL STREAM MESSAGE-CONTROL MESSAGE-ARGUMENTS

This method is a customization point where subclasses can customize how to format the log message. Subclasses of stream-appender call this method by default, but some other appenders may chose not to call it by customizing APPEND-MESSAGE.

Package

hu.dwim.logger

Source

api.lisp (file)

Methods
Method: format-message (LOGGER logger) APPENDER (FORMATTER parsable-formatter) LEVEL STREAM MESSAGE-CONTROL MESSAGE-ARGUMENTS
Source

formatter.lisp (file)

Method: format-message (LOGGER logger) APPENDER (FORMATTER verbose-formatter) LEVEL STREAM MESSAGE-CONTROL MESSAGE-ARGUMENTS
Source

formatter.lisp (file)

Method: format-message (LOGGER logger) APPENDER (FORMATTER brief-formatter) LEVEL STREAM MESSAGE-CONTROL MESSAGE-ARGUMENTS
Source

formatter.lisp (file)

Method: format-message LOGGER APPENDER FORMATTER LEVEL (OUTPUT-STREAM (eql nil)) MESSAGE-CONTROL MESSAGE-ARGUMENTS around
Generic Function: handle-log-message LOGGER LEVEL MESSAGE-CONTROL MESSAGE-ARGUMENTS

The first line of the log message handling, called by the printer macros. The default implementation if this method delegates the call to all the parents of the logger.

Package

hu.dwim.logger

Source

api.lisp (file)

Methods
Method: handle-log-message (LOGGER logger) LEVEL MESSAGE-CONTROL MESSAGE-ARGUMENTS
Source

logger.lisp (file)


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

6.1.7 Classes

Class: appender ()
Package

hu.dwim.logger

Source

api.lisp (file)

Direct superclasses

standard-object (class)

Direct subclasses
Direct methods
Direct slots
Slot: formatter
Initargs

:formatter

Readers

formatter-of (generic function)

Writers

(setf formatter-of) (generic function)

Class: brief-formatter ()

Minimal overhead text in messages. This amounts to: not printing the package names of loggers and log levels and a more compact printing of the current time.

Package

hu.dwim.logger

Source

formatter.lisp (file)

Direct superclasses

formatter (class)

Direct methods
Direct slots
Slot: last-message-year
Initargs

:last-message-year

Initform

0

Readers

last-message-year-of (generic function)

Writers

(setf last-message-year-of) (generic function)

Slot: last-message-month
Initargs

:last-message-month

Initform

0

Readers

last-message-month-of (generic function)

Writers

(setf last-message-month-of) (generic function)

Slot: last-message-day
Initargs

:last-message-day

Initform

0

Readers

last-message-day-of (generic function)

Writers

(setf last-message-day-of) (generic function)

Class: caching-appender ()
Package

hu.dwim.logger

Source

appender.lisp (file)

Direct superclasses

standard-object (class)

Direct subclasses
Direct methods
Direct slots
Slot: lock
Initargs

:lock

Initform

(bordeaux-threads:make-lock "a caching-appender of hu.dwim.logger")

Readers

lock-of (generic function)

Writers

(setf lock-of) (generic function)

Slot: last-flushed-at
Initargs

:last-flushed-at

Initform

(hu.dwim.util:get-monotonic-time)

Readers

last-flushed-at-of (generic function)

Writers

(setf last-flushed-at-of) (generic function)

Slot: cache
Initargs

:cache

Initform

(make-array hu.dwim.logger::+caching-appender/maximum-cache-size+ :adjustable nil :fill-pointer 0)

Readers

cache-of (generic function)

Writers

(setf cache-of) (generic function)

Slot: async-flushing

Is it ok to call FLUSH-CACHING-APPENDER-MESSAGES without holding the appender lock?

Type

boolean

Initargs

:async-flushing

Readers

async-flushing? (generic function)

Writers

(setf async-flushing?) (generic function)

Slot: lazy-flushing

If an external entity regularly call FLUSH-CACHING-APPENDER on us, then we may be lazy flushing.

Type

boolean

Initargs

:lazy-flushing

Initform

t

Readers

lazy-flushing? (generic function)

Writers

(setf lazy-flushing?) (generic function)

Class: file-appender ()

Logs to a file.

Package

hu.dwim.logger

Source

appender.lisp (file)

Direct superclasses

appender (class)

Direct subclasses

thread-safe-file-appender (class)

Direct methods
Direct slots
Slot: log-file

Name of the file to write log messages to.

Initargs

:log-file

Readers

log-file-of (generic function)

Writers

(setf log-file-of) (generic function)

Class: level-filtering-appender ()

Drops messages below MINIMUM-LEVEL and forwards the others to CHAINED-APPENDERS.

Package

hu.dwim.logger

Source

appender.lisp (file)

Direct superclasses

stream-appender (class)

Direct methods
Direct slots
Slot: minimum-level
Initargs

:minimum-level

Initform

hu.dwim.logger:+debug+

Readers

minimum-level-of (generic function)

Writers

(setf minimum-level-of) (generic function)

Slot: chained-appenders
Initargs

:chained-appenders

Readers

chained-appenders-of (generic function)

Writers

(setf chained-appenders-of) (generic function)

Class: logger ()
Package

hu.dwim.logger

Source

logger.lisp (file)

Direct superclasses

standard-object (class)

Direct methods
Direct slots
Slot: parents

The parent logger this logger inherits from.

Initargs

:parents

Readers

parents-of (generic function)

Writers

(setf parents-of) (generic function)

Slot: children

The loggers which inherit from this logger.

Initargs

:children

Readers

children-of (generic function)

Writers

(setf children-of) (generic function)

Slot: appenders

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

Initargs

:appenders

Readers

appenders-of (generic function)

Writers

(setf appenders-of) (generic function)

Slot: runtime-level

The runtime log level determines whether an actual log message shows up at runtime.

Type

(or null integer)

Initargs

:runtime-level

Readers

runtime-level-of (generic function)

Writers

(setf runtime-level-of) (generic function)

Slot: compile-time-level

The compile time log level is a compile time filter. Log expressions below this level will macro-expand to NIL at compile time.

Type

(or null integer)

Initargs

:compile-time-level

Readers

compile-time-level-of (generic function)

Writers

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

Slot: name
Initargs

:name

Readers

name-of (generic function)

Writers

(setf name-of) (generic function)

Slot: documentation
Initargs

:documentation

Readers

documentation-of (generic function)

Writers

(setf documentation-of) (generic function)

Class: parsable-formatter ()

The output of the file logger is not meant to be read directly by a human.

Package

hu.dwim.logger

Source

formatter.lisp (file)

Direct superclasses

formatter (class)

Direct methods

format-message (method)

Class: stream-appender ()

Human readable logger.

Package

hu.dwim.logger

Source

appender.lisp (file)

Direct superclasses

appender (class)

Direct subclasses
Direct methods
Direct slots
Slot: stream
Initargs

:stream

Initform

(quote *standard-output*)

Readers

stream-of (generic function)

Writers

(setf stream-of) (generic function)

Class: thread-safe-file-appender ()
Package

hu.dwim.logger

Source

appender.lisp (file)

Direct superclasses
Direct methods

flush-caching-appender-messages (method)

Class: thread-safe-stream-appender ()
Package

hu.dwim.logger

Source

appender.lisp (file)

Direct superclasses
Direct methods

flush-caching-appender-messages (method)

Class: verbose-formatter ()

Attempts to be as precise as possible, logger names and log level names are printed with a package prefix and the time is printed in long format.

Package

hu.dwim.logger

Source

formatter.lisp (file)

Direct superclasses

formatter (class)

Direct methods

format-message (method)


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

6.1.8 Types

Type: log-level ()
Package

hu.dwim.logger

Source

logger.lisp (file)


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

6.2 Internal definitions


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

6.2.1 Constants

Constant: +caching-appender/maximum-cache-size+
Package

hu.dwim.logger

Source

appender.lisp (file)

Constant: +max-logger-name-length+
Package

hu.dwim.logger

Source

formatter.lisp (file)


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

6.2.2 Special variables

Special Variable: *toplevel-logger*

While inside HANDLE-LOG-MESSAGE, this variable is bound to the logger on which HANDLE-LOG-MESSAGE was called first, ignoring logger inheritance and handler delegation.

Package

hu.dwim.logger

Source

logger.lisp (file)


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

6.2.3 Macros

Macro: with-lock-held-on-caching-appender APPENDER &body WITH-BODY1
Package

hu.dwim.logger

Source

appender.lisp (file)

Macro: with-logging-io &body WITH-BODY1
Package

hu.dwim.logger

Source

logger.lisp (file)

Macro: with-output-to-file-appender-file (STREAM-VAR-NAME APPENDER) &body WITH-BODY1
Package

hu.dwim.logger

Source

appender.lisp (file)


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

6.2.4 Functions

Function: %find-logger NAME &key OTHERWISE
Function: (setf %find-logger) VALUE NAME
Package

hu.dwim.logger

Source

logger.lisp (file)

Function: at-compile-time-enabled? LOGGER LEVEL
Package

hu.dwim.logger

Source

logger.lisp (file)

Function: at-runtime-enabled? LOGGER LEVEL
Package

hu.dwim.logger

Source

logger.lisp (file)

Function: call-handle-log-message LOGGER LEVEL MESSAGE-CONTROL MESSAGE-ARGUMENTS
Package

hu.dwim.logger

Source

logger.lisp (file)

Function: call-with-lock-held-on-caching-appender FN0 APPENDER
Package

hu.dwim.logger

Source

appender.lisp (file)

Function: call-with-logging-io FN0
Package

hu.dwim.logger

Source

logger.lisp (file)

Function: call-with-output-to-file-appender-file FN0 APPENDER
Package

hu.dwim.logger

Source

appender.lisp (file)

Function: collect-helper-names LOGGERN-NAME
Package

hu.dwim.logger

Source

logger.lisp (file)

Function: file-appender-output-file APPENDER
Package

hu.dwim.logger

Source

appender.lisp (file)

Function: find-caching-appender NAME &key OTHERWISE
Function: (setf find-caching-appender) VALUE NAME
Package

hu.dwim.logger

Source

appender.lisp (file)

Function: format-or-write-string STREAM MESSAGE-CONTROL &optional MESSAGE-ARGUMENTS
Package

hu.dwim.logger

Source

appender.lisp (file)

Function: logger-name-for-output LOGGER
Package

hu.dwim.logger

Source

appender.lisp (file)

Function: note-logging-error ERROR &key CONTEXT MESSAGE-CONTROL MESSAGE-ARGUMENTS
Package

hu.dwim.logger

Source

logger.lisp (file)

Function: validate-log-level VALUE
Package

hu.dwim.logger

Source

logger.lisp (file)


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

6.2.5 Generic functions

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

hu.dwim.logger

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

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

Source

logger.lisp (file)

Generic Function: async-flushing? OBJECT
Generic Function: (setf async-flushing?) NEW-VALUE OBJECT
Package

hu.dwim.logger

Methods
Method: async-flushing? (CACHING-APPENDER caching-appender)
Method: (setf async-flushing?) NEW-VALUE (CACHING-APPENDER caching-appender)

Is it ok to call FLUSH-CACHING-APPENDER-MESSAGES without holding the appender lock?

Source

appender.lisp (file)

Generic Function: cache-of OBJECT
Generic Function: (setf cache-of) NEW-VALUE OBJECT
Package

hu.dwim.logger

Methods
Method: cache-of (CACHING-APPENDER caching-appender)

automatically generated reader method

Source

appender.lisp (file)

Method: (setf cache-of) NEW-VALUE (CACHING-APPENDER caching-appender)

automatically generated writer method

Source

appender.lisp (file)

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

hu.dwim.logger

Methods
Method: chained-appenders-of (LEVEL-FILTERING-APPENDER level-filtering-appender)

automatically generated reader method

Source

appender.lisp (file)

Method: (setf chained-appenders-of) NEW-VALUE (LEVEL-FILTERING-APPENDER level-filtering-appender)

automatically generated writer method

Source

appender.lisp (file)

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

hu.dwim.logger

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

The loggers which inherit from this logger.

Source

logger.lisp (file)

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

hu.dwim.logger

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

The compile time log level is a compile time filter. Log expressions below this level will macro-expand to NIL at compile time.

Source

logger.lisp (file)

Generic Function: documentation-of OBJECT
Generic Function: (setf documentation-of) NEW-VALUE OBJECT
Package

hu.dwim.logger

Methods
Method: documentation-of (LOGGER logger)

automatically generated reader method

Source

logger.lisp (file)

Method: (setf documentation-of) NEW-VALUE (LOGGER logger)

automatically generated writer method

Source

logger.lisp (file)

Generic Function: flush-caching-appender-messages APPENDER LINES
Package

hu.dwim.logger

Source

appender.lisp (file)

Methods
Method: flush-caching-appender-messages (APPENDER thread-safe-file-appender) LINES
Method: flush-caching-appender-messages (APPENDER thread-safe-stream-appender) LINES
Method: flush-caching-appender-messages (APPENDER caching-appender) LINES after
Generic Function: formatter-of OBJECT
Generic Function: (setf formatter-of) NEW-VALUE OBJECT
Package

hu.dwim.logger

Methods
Method: formatter-of (APPENDER appender)

automatically generated reader method

Source

api.lisp (file)

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

automatically generated writer method

Source

api.lisp (file)

Generic Function: last-flushed-at-of OBJECT
Generic Function: (setf last-flushed-at-of) NEW-VALUE OBJECT
Package

hu.dwim.logger

Methods
Method: last-flushed-at-of (CACHING-APPENDER caching-appender)

automatically generated reader method

Source

appender.lisp (file)

Method: (setf last-flushed-at-of) NEW-VALUE (CACHING-APPENDER caching-appender)

automatically generated writer method

Source

appender.lisp (file)

Generic Function: last-message-day-of OBJECT
Generic Function: (setf last-message-day-of) NEW-VALUE OBJECT
Package

hu.dwim.logger

Methods
Method: last-message-day-of (BRIEF-FORMATTER brief-formatter)

automatically generated reader method

Source

formatter.lisp (file)

Method: (setf last-message-day-of) NEW-VALUE (BRIEF-FORMATTER brief-formatter)

automatically generated writer method

Source

formatter.lisp (file)

Generic Function: last-message-month-of OBJECT
Generic Function: (setf last-message-month-of) NEW-VALUE OBJECT
Package

hu.dwim.logger

Methods
Method: last-message-month-of (BRIEF-FORMATTER brief-formatter)

automatically generated reader method

Source

formatter.lisp (file)

Method: (setf last-message-month-of) NEW-VALUE (BRIEF-FORMATTER brief-formatter)

automatically generated writer method

Source

formatter.lisp (file)

Generic Function: last-message-year-of OBJECT
Generic Function: (setf last-message-year-of) NEW-VALUE OBJECT
Package

hu.dwim.logger

Methods
Method: last-message-year-of (BRIEF-FORMATTER brief-formatter)

automatically generated reader method

Source

formatter.lisp (file)

Method: (setf last-message-year-of) NEW-VALUE (BRIEF-FORMATTER brief-formatter)

automatically generated writer method

Source

formatter.lisp (file)

Generic Function: lazy-flushing? OBJECT
Generic Function: (setf lazy-flushing?) NEW-VALUE OBJECT
Package

hu.dwim.logger

Methods
Method: lazy-flushing? (CACHING-APPENDER caching-appender)
Method: (setf lazy-flushing?) NEW-VALUE (CACHING-APPENDER caching-appender)

If an external entity regularly call FLUSH-CACHING-APPENDER on us, then we may be lazy flushing.

Source

appender.lisp (file)

Generic Function: lock-of OBJECT
Generic Function: (setf lock-of) NEW-VALUE OBJECT
Package

hu.dwim.logger

Methods
Method: lock-of (CACHING-APPENDER caching-appender)

automatically generated reader method

Source

appender.lisp (file)

Method: (setf lock-of) NEW-VALUE (CACHING-APPENDER caching-appender)

automatically generated writer method

Source

appender.lisp (file)

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

hu.dwim.logger

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

Name of the file to write log messages to.

Source

appender.lisp (file)

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

hu.dwim.logger

Methods
Method: minimum-level-of (LEVEL-FILTERING-APPENDER level-filtering-appender)

automatically generated reader method

Source

appender.lisp (file)

Method: (setf minimum-level-of) NEW-VALUE (LEVEL-FILTERING-APPENDER level-filtering-appender)

automatically generated writer method

Source

appender.lisp (file)

Generic Function: name-of OBJECT
Generic Function: (setf name-of) NEW-VALUE OBJECT
Package

hu.dwim.logger

Methods
Method: name-of (LOGGER logger)

automatically generated reader method

Source

logger.lisp (file)

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

automatically generated writer method

Source

logger.lisp (file)

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

hu.dwim.logger

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

The parent logger this logger inherits from.

Source

logger.lisp (file)

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

hu.dwim.logger

Methods
Method: runtime-level-of (LOGGER logger)
Method: (setf runtime-level-of) NEW-VALUE (LOGGER logger)

The runtime log level determines whether an actual log message shows up at runtime.

Source

logger.lisp (file)

Generic Function: stream-of OBJECT
Generic Function: (setf stream-of) NEW-VALUE OBJECT
Package

hu.dwim.logger

Methods
Method: stream-of (SELF appender) around
Source

appender.lisp (file)

Method: stream-of (STREAM-APPENDER stream-appender)

automatically generated reader method

Source

appender.lisp (file)

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

automatically generated writer method

Source

appender.lisp (file)


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

6.2.6 Classes

Class: formatter ()
Package

hu.dwim.logger

Source

api.lisp (file)

Direct superclasses

standard-object (class)

Direct subclasses

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

6.2.7 Types

Type: logger-name ()
Package

hu.dwim.logger

Source

logger.lisp (file)


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

Appendix A Indexes


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

A.1 Concepts

Jump to:   F   H   L   M  
Index Entry  Section

F
File, Lisp, hu.dwim.logger.asd: The hu<dot>dwim<dot>logger<dot>asd file
File, Lisp, hu.dwim.logger/source/api.lisp: The hu<dot>dwim<dot>logger/source/api<dot>lisp file
File, Lisp, hu.dwim.logger/source/appender.lisp: The hu<dot>dwim<dot>logger/source/appender<dot>lisp file
File, Lisp, hu.dwim.logger/source/formatter.lisp: The hu<dot>dwim<dot>logger/source/formatter<dot>lisp file
File, Lisp, hu.dwim.logger/source/logger.lisp: The hu<dot>dwim<dot>logger/source/logger<dot>lisp file
File, Lisp, hu.dwim.logger/source/package.lisp: The hu<dot>dwim<dot>logger/source/package<dot>lisp file
File, Lisp, hu.dwim.logger/source/root-logger.lisp: The hu<dot>dwim<dot>logger/source/root-logger<dot>lisp file

H
hu.dwim.logger.asd: The hu<dot>dwim<dot>logger<dot>asd file
hu.dwim.logger/source: The hu<dot>dwim<dot>logger/source module
hu.dwim.logger/source/api.lisp: The hu<dot>dwim<dot>logger/source/api<dot>lisp file
hu.dwim.logger/source/appender.lisp: The hu<dot>dwim<dot>logger/source/appender<dot>lisp file
hu.dwim.logger/source/formatter.lisp: The hu<dot>dwim<dot>logger/source/formatter<dot>lisp file
hu.dwim.logger/source/logger.lisp: The hu<dot>dwim<dot>logger/source/logger<dot>lisp file
hu.dwim.logger/source/package.lisp: The hu<dot>dwim<dot>logger/source/package<dot>lisp file
hu.dwim.logger/source/root-logger.lisp: The hu<dot>dwim<dot>logger/source/root-logger<dot>lisp file

L
Lisp File, hu.dwim.logger.asd: The hu<dot>dwim<dot>logger<dot>asd file
Lisp File, hu.dwim.logger/source/api.lisp: The hu<dot>dwim<dot>logger/source/api<dot>lisp file
Lisp File, hu.dwim.logger/source/appender.lisp: The hu<dot>dwim<dot>logger/source/appender<dot>lisp file
Lisp File, hu.dwim.logger/source/formatter.lisp: The hu<dot>dwim<dot>logger/source/formatter<dot>lisp file
Lisp File, hu.dwim.logger/source/logger.lisp: The hu<dot>dwim<dot>logger/source/logger<dot>lisp file
Lisp File, hu.dwim.logger/source/package.lisp: The hu<dot>dwim<dot>logger/source/package<dot>lisp file
Lisp File, hu.dwim.logger/source/root-logger.lisp: The hu<dot>dwim<dot>logger/source/root-logger<dot>lisp file

M
Module, hu.dwim.logger/source: The hu<dot>dwim<dot>logger/source module

Jump to:   F   H   L   M  

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

A.2 Functions

Jump to:   %   (  
A   C   D   F   G   H   L   M   N   P   R   S   V   W  
Index Entry  Section

%
%find-logger: Internal functions

(
(setf %find-logger): Internal functions
(setf appenders-of): Internal generic functions
(setf appenders-of): Internal generic functions
(setf async-flushing?): Internal generic functions
(setf async-flushing?): Internal generic functions
(setf cache-of): Internal generic functions
(setf cache-of): Internal generic functions
(setf chained-appenders-of): Internal generic functions
(setf chained-appenders-of): Internal generic functions
(setf children-of): Internal generic functions
(setf children-of): Internal generic functions
(setf compile-time-level-of): Internal generic functions
(setf compile-time-level-of): Internal generic functions
(setf documentation-of): Internal generic functions
(setf documentation-of): Internal generic functions
(setf find-caching-appender): Internal functions
(setf find-logger): Exported functions
(setf formatter-of): Internal generic functions
(setf formatter-of): Internal generic functions
(setf last-flushed-at-of): Internal generic functions
(setf last-flushed-at-of): Internal generic functions
(setf last-message-day-of): Internal generic functions
(setf last-message-day-of): Internal generic functions
(setf last-message-month-of): Internal generic functions
(setf last-message-month-of): Internal generic functions
(setf last-message-year-of): Internal generic functions
(setf last-message-year-of): Internal generic functions
(setf lazy-flushing?): Internal generic functions
(setf lazy-flushing?): Internal generic functions
(setf lock-of): Internal generic functions
(setf lock-of): Internal generic functions
(setf log-file-of): Internal generic functions
(setf log-file-of): Internal generic functions
(setf log-level): Exported functions
(setf log-level/compile-time): Exported functions
(setf log-level/runtime): Exported functions
(setf minimum-level-of): Internal generic functions
(setf minimum-level-of): Internal generic functions
(setf name-of): Internal generic functions
(setf name-of): Internal generic functions
(setf parents-of): Internal generic functions
(setf parents-of): Internal generic functions
(setf runtime-level-of): Internal generic functions
(setf runtime-level-of): Internal generic functions
(setf stream-of): Internal generic functions
(setf stream-of): Internal generic functions

A
append-message: Exported generic functions
append-message: Exported generic functions
append-message: Exported generic functions
append-message: Exported generic functions
append-message: Exported generic functions
append-message: Exported generic functions
appenders-of: Internal generic functions
appenders-of: Internal generic functions
async-flushing?: Internal generic functions
async-flushing?: Internal generic functions
at-compile-time-enabled?: Internal functions
at-runtime-enabled?: Internal functions

C
cache-of: Internal generic functions
cache-of: Internal generic functions
call-handle-log-message: Internal functions
call-with-lock-held-on-caching-appender: Internal functions
call-with-logging-io: Internal functions
call-with-output-to-file-appender-file: Internal functions
chained-appenders-of: Internal generic functions
chained-appenders-of: Internal generic functions
children-of: Internal generic functions
children-of: Internal generic functions
collect-helper-names: Internal functions
compile-time-level-of: Internal generic functions
compile-time-level-of: Internal generic functions
Compiler Macro, find-logger: Exported compiler macros

D
deflogger: Exported macros
documentation-of: Internal generic functions
documentation-of: Internal generic functions

F
file-appender-output-file: Internal functions
find-caching-appender: Internal functions
find-logger: Exported compiler macros
find-logger: Exported functions
flush-caching-appender: Exported functions
flush-caching-appender-messages: Internal generic functions
flush-caching-appender-messages: Internal generic functions
flush-caching-appender-messages: Internal generic functions
flush-caching-appender-messages: Internal generic functions
flush-caching-appenders: Exported functions
format-message: Exported generic functions
format-message: Exported generic functions
format-message: Exported generic functions
format-message: Exported generic functions
format-message: Exported generic functions
format-or-write-string: Internal functions
formatter-of: Internal generic functions
formatter-of: Internal generic functions
Function, %find-logger: Internal functions
Function, (setf %find-logger): Internal functions
Function, (setf find-caching-appender): Internal functions
Function, (setf find-logger): Exported functions
Function, (setf log-level): Exported functions
Function, (setf log-level/compile-time): Exported functions
Function, (setf log-level/runtime): Exported functions
Function, at-compile-time-enabled?: Internal functions
Function, at-runtime-enabled?: Internal functions
Function, call-handle-log-message: Internal functions
Function, call-with-lock-held-on-caching-appender: Internal functions
Function, call-with-logging-io: Internal functions
Function, call-with-output-to-file-appender-file: Internal functions
Function, collect-helper-names: Internal functions
Function, file-appender-output-file: Internal functions
Function, find-caching-appender: Internal functions
Function, find-logger: Exported functions
Function, flush-caching-appender: Exported functions
Function, flush-caching-appenders: Exported functions
Function, format-or-write-string: Internal functions
Function, log-level: Exported functions
Function, log-level/compile-time: Exported functions
Function, log-level/runtime: Exported functions
Function, log-to-console: Exported functions
Function, logger-name-for-output: Internal functions
Function, make-file-appender: Exported functions
Function, make-level-filtering-appender: Exported functions
Function, make-stream-appender: Exported functions
Function, make-thread-safe-file-appender: Exported functions
Function, make-thread-safe-stream-appender: Exported functions
Function, note-logging-error: Internal functions
Function, set-log-level: Exported functions
Function, setup-logging-for-production: Exported functions
Function, validate-log-level: Internal functions

G
Generic Function, (setf appenders-of): Internal generic functions
Generic Function, (setf async-flushing?): Internal generic functions
Generic Function, (setf cache-of): Internal generic functions
Generic Function, (setf chained-appenders-of): Internal generic functions
Generic Function, (setf children-of): Internal generic functions
Generic Function, (setf compile-time-level-of): Internal generic functions
Generic Function, (setf documentation-of): Internal generic functions
Generic Function, (setf formatter-of): Internal generic functions
Generic Function, (setf last-flushed-at-of): Internal generic functions
Generic Function, (setf last-message-day-of): Internal generic functions
Generic Function, (setf last-message-month-of): Internal generic functions
Generic Function, (setf last-message-year-of): Internal generic functions
Generic Function, (setf lazy-flushing?): Internal generic functions
Generic Function, (setf lock-of): Internal generic functions
Generic Function, (setf log-file-of): Internal generic functions
Generic Function, (setf minimum-level-of): Internal generic functions
Generic Function, (setf name-of): Internal generic functions
Generic Function, (setf parents-of): Internal generic functions
Generic Function, (setf runtime-level-of): Internal generic functions
Generic Function, (setf stream-of): Internal generic functions
Generic Function, append-message: Exported generic functions
Generic Function, appenders-of: Internal generic functions
Generic Function, async-flushing?: Internal generic functions
Generic Function, cache-of: Internal generic functions
Generic Function, chained-appenders-of: Internal generic functions
Generic Function, children-of: Internal generic functions
Generic Function, compile-time-level-of: Internal generic functions
Generic Function, documentation-of: Internal generic functions
Generic Function, flush-caching-appender-messages: Internal generic functions
Generic Function, format-message: Exported generic functions
Generic Function, formatter-of: Internal generic functions
Generic Function, handle-log-message: Exported generic functions
Generic Function, last-flushed-at-of: Internal generic functions
Generic Function, last-message-day-of: Internal generic functions
Generic Function, last-message-month-of: Internal generic functions
Generic Function, last-message-year-of: Internal generic functions
Generic Function, lazy-flushing?: Internal generic functions
Generic Function, lock-of: Internal generic functions
Generic Function, log-file-of: Internal generic functions
Generic Function, minimum-level-of: Internal generic functions
Generic Function, name-of: Internal generic functions
Generic Function, parents-of: Internal generic functions
Generic Function, runtime-level-of: Internal generic functions
Generic Function, stream-of: Internal generic functions

H
handle-log-message: Exported generic functions
handle-log-message: Exported generic functions

L
last-flushed-at-of: Internal generic functions
last-flushed-at-of: Internal generic functions
last-message-day-of: Internal generic functions
last-message-day-of: Internal generic functions
last-message-month-of: Internal generic functions
last-message-month-of: Internal generic functions
last-message-year-of: Internal generic functions
last-message-year-of: Internal generic functions
lazy-flushing?: Internal generic functions
lazy-flushing?: Internal generic functions
lock-of: Internal generic functions
lock-of: Internal generic functions
log-file-of: Internal generic functions
log-file-of: Internal generic functions
log-level: Exported functions
log-level/compile-time: Exported functions
log-level/runtime: Exported functions
log-to-console: Exported functions
logger-name-for-output: Internal functions

M
Macro, deflogger: Exported macros
Macro, root-logger.debug: Exported macros
Macro, root-logger.dribble: Exported macros
Macro, root-logger.error: Exported macros
Macro, root-logger.fatal: Exported macros
Macro, root-logger.info: Exported macros
Macro, root-logger.warn: Exported macros
Macro, with-lock-held-on-caching-appender: Internal macros
Macro, with-logger-level: Exported macros
Macro, with-logging-io: Internal macros
Macro, with-output-to-file-appender-file: Internal macros
make-file-appender: Exported functions
make-level-filtering-appender: Exported functions
make-stream-appender: Exported functions
make-thread-safe-file-appender: Exported functions
make-thread-safe-stream-appender: Exported functions
Method, (setf appenders-of): Internal generic functions
Method, (setf async-flushing?): Internal generic functions
Method, (setf cache-of): Internal generic functions
Method, (setf chained-appenders-of): Internal generic functions
Method, (setf children-of): Internal generic functions
Method, (setf compile-time-level-of): Internal generic functions
Method, (setf documentation-of): Internal generic functions
Method, (setf formatter-of): Internal generic functions
Method, (setf last-flushed-at-of): Internal generic functions
Method, (setf last-message-day-of): Internal generic functions
Method, (setf last-message-month-of): Internal generic functions
Method, (setf last-message-year-of): Internal generic functions
Method, (setf lazy-flushing?): Internal generic functions
Method, (setf lock-of): Internal generic functions
Method, (setf log-file-of): Internal generic functions
Method, (setf minimum-level-of): Internal generic functions
Method, (setf name-of): Internal generic functions
Method, (setf parents-of): Internal generic functions
Method, (setf runtime-level-of): Internal generic functions
Method, (setf stream-of): Internal generic functions
Method, append-message: Exported generic functions
Method, append-message: Exported generic functions
Method, append-message: Exported generic functions
Method, append-message: Exported generic functions
Method, append-message: Exported generic functions
Method, appenders-of: Internal generic functions
Method, async-flushing?: Internal generic functions
Method, cache-of: Internal generic functions
Method, chained-appenders-of: Internal generic functions
Method, children-of: Internal generic functions
Method, compile-time-level-of: Internal generic functions
Method, documentation-of: Internal generic functions
Method, flush-caching-appender-messages: Internal generic functions
Method, flush-caching-appender-messages: Internal generic functions
Method, flush-caching-appender-messages: Internal generic functions
Method, format-message: Exported generic functions
Method, format-message: Exported generic functions
Method, format-message: Exported generic functions
Method, format-message: Exported generic functions
Method, formatter-of: Internal generic functions
Method, handle-log-message: Exported generic functions
Method, last-flushed-at-of: Internal generic functions
Method, last-message-day-of: Internal generic functions
Method, last-message-month-of: Internal generic functions
Method, last-message-year-of: Internal generic functions
Method, lazy-flushing?: Internal generic functions
Method, lock-of: Internal generic functions
Method, log-file-of: Internal generic functions
Method, minimum-level-of: Internal generic functions
Method, name-of: Internal generic functions
Method, parents-of: Internal generic functions
Method, runtime-level-of: Internal generic functions
Method, stream-of: Internal generic functions
Method, stream-of: Internal generic functions
minimum-level-of: Internal generic functions
minimum-level-of: Internal generic functions

N
name-of: Internal generic functions
name-of: Internal generic functions
note-logging-error: Internal functions

P
parents-of: Internal generic functions
parents-of: Internal generic functions

R
root-logger.debug: Exported macros
root-logger.dribble: Exported macros
root-logger.error: Exported macros
root-logger.fatal: Exported macros
root-logger.info: Exported macros
root-logger.warn: Exported macros
runtime-level-of: Internal generic functions
runtime-level-of: Internal generic functions

S
set-log-level: Exported functions
setup-logging-for-production: Exported functions
stream-of: Internal generic functions
stream-of: Internal generic functions
stream-of: Internal generic functions

V
validate-log-level: Internal functions

W
with-lock-held-on-caching-appender: Internal macros
with-logger-level: Exported macros
with-logging-io: Internal macros
with-output-to-file-appender-file: Internal macros

Jump to:   %   (  
A   C   D   F   G   H   L   M   N   P   R   S   V   W  

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

A.3 Variables

Jump to:   *   +  
A   C   D   F   L   M   N   P   R   S  
Index Entry  Section

*
*log-directory*: Exported special variables
*toplevel-logger*: Internal special variables

+
+caching-appender/maximum-cache-size+: Internal constants
+debug+: Exported constants
+dribble+: Exported constants
+error+: Exported constants
+fatal+: Exported constants
+info+: Exported constants
+log-level-keywords+: Exported constants
+log-level-names+: Exported constants
+max-logger-name-length+: Internal constants
+warn+: Exported constants

A
appenders: Exported classes
async-flushing: Exported classes

C
cache: Exported classes
chained-appenders: Exported classes
children: Exported classes
compile-time-level: Exported classes
Constant, +caching-appender/maximum-cache-size+: Internal constants
Constant, +debug+: Exported constants
Constant, +dribble+: Exported constants
Constant, +error+: Exported constants
Constant, +fatal+: Exported constants
Constant, +info+: Exported constants
Constant, +log-level-keywords+: Exported constants
Constant, +log-level-names+: Exported constants
Constant, +max-logger-name-length+: Internal constants
Constant, +warn+: Exported constants

D
documentation: Exported classes

F
formatter: Exported classes

L
last-flushed-at: Exported classes
last-message-day: Exported classes
last-message-month: Exported classes
last-message-year: Exported classes
lazy-flushing: Exported classes
lock: Exported classes
log-file: Exported classes

M
minimum-level: Exported classes

N
name: Exported classes

P
parents: Exported classes

R
runtime-level: Exported classes

S
Slot, appenders: Exported classes
Slot, async-flushing: Exported classes
Slot, cache: Exported classes
Slot, chained-appenders: Exported classes
Slot, children: Exported classes
Slot, compile-time-level: Exported classes
Slot, documentation: Exported classes
Slot, formatter: Exported classes
Slot, last-flushed-at: Exported classes
Slot, last-message-day: Exported classes
Slot, last-message-month: Exported classes
Slot, last-message-year: Exported classes
Slot, lazy-flushing: Exported classes
Slot, lock: Exported classes
Slot, log-file: Exported classes
Slot, minimum-level: Exported classes
Slot, name: Exported classes
Slot, parents: Exported classes
Slot, runtime-level: Exported classes
Slot, stream: Exported classes
Special Variable, *log-directory*: Exported special variables
Special Variable, *toplevel-logger*: Internal special variables
stream: Exported classes

Jump to:   *   +  
A   C   D   F   L   M   N   P   R   S  

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

A.4 Data types

Jump to:   A   B   C   F   H   L   P   S   T   V  
Index Entry  Section

A
appender: Exported classes

B
brief-formatter: Exported classes

C
caching-appender: Exported classes
Class, appender: Exported classes
Class, brief-formatter: Exported classes
Class, caching-appender: Exported classes
Class, file-appender: Exported classes
Class, formatter: Internal classes
Class, level-filtering-appender: Exported classes
Class, logger: Exported classes
Class, parsable-formatter: Exported classes
Class, stream-appender: Exported classes
Class, thread-safe-file-appender: Exported classes
Class, thread-safe-stream-appender: Exported classes
Class, verbose-formatter: Exported classes

F
file-appender: Exported classes
formatter: Internal classes

H
hu.dwim.logger: The hu<dot>dwim<dot>logger system
hu.dwim.logger: The hu<dot>dwim<dot>logger package

L
level-filtering-appender: Exported classes
log-level: Exported types
logger: Exported classes
logger-name: Internal types

P
Package, hu.dwim.logger: The hu<dot>dwim<dot>logger package
parsable-formatter: Exported classes

S
stream-appender: Exported classes
System, hu.dwim.logger: The hu<dot>dwim<dot>logger system

T
thread-safe-file-appender: Exported classes
thread-safe-stream-appender: Exported classes
Type, log-level: Exported types
Type, logger-name: Internal types

V
verbose-formatter: Exported classes

Jump to:   A   B   C   F   H   L   P   S   T   V