Logging module and functions

Requires neotermcolor

neotermcolor styles:

  • logger:10 - debug log message
  • logger:20 - info log message
  • logger:30 - warning log message
  • logger:40 - error log message
  • logger:50 - critical log message
  • logger:exception - exceptions, printed to stdout (w/o logging)

Keeping records in memory requires neotasker library

class pyaltt2.logs.JSysLogHandler(*args, as_json=False, **kwargs)
emit(record)

Emit a record.

The record is formatted, and then sent to the syslog server. If exception information is present, it is NOT sent to the server.

class pyaltt2.logs.JWatchedFileHandler(*args, as_json=False, **kwargs)
emit(record)

Emit a record.

If underlying file has changed, reopen the file before emitting the record to it.

pyaltt2.logs.append(record=None, rd=None, **kwargs)

Append log record to memory cache

Parameters:
  • record – log record, or
  • rd – log record in dict format
  • **kwargs – passed to handle_append as-is
pyaltt2.logs.clean(**kwargs)

Clean obsolete log records from memory

Usually executed from log cleaner worker (see “start”)

pyaltt2.logs.get(level=0, t=0, n=None, pattern=None)

Get recent log records

Parameters:
  • level – minimal log level
  • t – get entries for the recent t seconds
  • n – max number of log records (default: 100)
pyaltt2.logs.handle_append(rd, **kwargs)

Called after record is appended

Parameters:
  • rd – log record in dict format
  • **kwargs – got from append as-is
pyaltt2.logs.init(**kwargs)

Initialize logger

Parameters:
  • name – software product name
  • host – custom host name
  • log_file – file to log to
  • log_stdout – 0 - do not log, 1 - log, 2 - log auto (if no more log hdlrs)
  • syslog – True for /dev/log, socket path or host[:port]
  • level – log level (default: 20)
  • tracebacks – log tracebacks (default: False)
  • ignore – use “ignore” symbol - memory hdlr ignores records starting with
  • ignore_mods – list of modules to ignore
  • omit_ignore_for_level – omit ignore props for >= level
  • stdout_ignore – use “ignore” symbol in stdout logger as well
  • keep_logmem – keep log records in memory for the specified time (seconds)
  • keep_exceptions – keep number of recent exceptions
  • colorize – colorize stdout if possible
  • formatter – log formatter
  • syslog_formatter – if defined, use custom formatter for syslog
  • log_json – true/false
  • syslog_json – true/false
pyaltt2.logs.log_traceback(display=False, use_ignore=False, force=False, e=None, critical=False)

Log exception traceback

Parameters:
  • display – display traceback instead of logging
  • use_ignore – use ignore symbol for traceback string
  • force – force log, even if tracebacks are disabled
  • e – exception or exc_info to log (optional)
pyaltt2.logs.serialize()

Get dict with internal data

pyaltt2.logs.set_debug(debug=False)

Set debug mode ON/OFF

Parameters:debug – True = ON, False = OFF
pyaltt2.logs.start(loop=None)

Start log cleaner

Requires neotasker module, task supervisor must be started before

Parameters:loop – neotasker async loop to execute cleaner worker in
pyaltt2.logs.stop()

Optional method to stop log cleaner