lib.log

class lib.log.DateTimeRotatingFileHandler(filename, when='H', interval=1, backupCount=0, encoding=None, delay=True, utc=False)[Quellcode]

Bases: StreamHandler

Handler for logging to file using current date and time information in the filename. Either placeholders can be used or a standard pattern is used. Rotating the log file at each when beginning. If backupCount is > 0, when rollover is done, no more than backupCount files are kept - the oldest ones are deleted.

close()[Quellcode]

Closes the stream.

do_rollover()[Quellcode]

Do a rollover. In this case, the current stream will be closed and a new filename will be generated when the rollover happens. If there is a backup count, then we have to get a list of matching filenames, sort them and remove the one with the oldest suffix.

emit(record)[Quellcode]

Emit a record. Output the record to the file, catering for rollover as described in do_rollover().

get_filename()[Quellcode]
Rückgabetyp:

str

get_files_to_delete()[Quellcode]

Determine the files to delete when rolling over.

next_rollover_time()[Quellcode]

Work out the rollover time based on current time.

parseFilename(filename)[Quellcode]
Rückgabetyp:

str

class lib.log.Log(smarthome, name, mapping, maxlen=40, handler=None)[Quellcode]

Bases: deque

add(entry)[Quellcode]

Adds a log entry to the memory log. If the log already has reached the maximum length, the oldest entry is removed from the log automatically.

clean(dt)[Quellcode]

Assuming dt to be a datetime: remove all entries that are smaller or equal to this given datetime from the right side of the queue

export(number)[Quellcode]

Returns the newest entries of the log and prepares them with the mapping

Parameter:

number – Number of entries to return

Rückgabe:

List of log entries

last(number)[Quellcode]

Returns the newest entries of the log

Parameter:

number – Number of entries to return

Rückgabe:

List of log entries

class lib.log.Logs(sh)[Quellcode]

Bases: object

DBGHIGH_level = 13
DBGLOW_level = 11
DBGMED_level = 12
NOTICE_level = 29
add_all_handlers_logger(logging_config)[Quellcode]
add_log(name, log)[Quellcode]

Adds a log (object) to the list of memory logs

Parameter:
  • name – Name of log

  • log – Log object

add_logging_level(description, value)[Quellcode]

Adds a new Logging level to the standard python logging

Parameter:
  • description (string) – appearance within logs SYSINFO

  • value (int) – numeric value for the logging level

  • tocall (String, optional, if not given description will be used with lower case) – function name to call for a log with the given level

no error checking is performed here for typos, already existing levels or functions

configure_logging(config_filename='')[Quellcode]
get_all_handlernames()[Quellcode]
get_handler_by_name(handlername)[Quellcode]
get_shng_logging_levels()[Quellcode]

Returns a dict of the logging levels, that are defined in SmartHomeNG (key=numeric log level, value=name od loa level)

It is used e.g. by the admin module

Rückgabe:

dict

initMemLog()[Quellcode]

This function initializes all needed datastructures to use the ‚env.core.log‘ mem-logger and the (old) memlog plugin

It adds the handler log_mem (based on the custom lib.log.ShngMemLogHandler) to the root logger It logs all WARNINGS from all (old) mem-loggers to the root Logger

load_logging_config(filename='', ignore_notfound=False)[Quellcode]

Load config from logging.yaml to a dict

If logging.yaml does not contain a ‚shng_version‘ key, a backup is created

load_logging_config_for_edit()[Quellcode]

Load config from logging.yaml to a dict

If logging.yaml does not contain a ‚shng_version‘ key, a backup is created

logging_levels = {}
return_logs()[Quellcode]

Function to the list of memory logs

Rückgabe:

List of logs

Rückgabetyp:

list

root_handler_name = ''
save_logging_config(logging_config, create_backup=False)[Quellcode]

Save dict to logging.yaml

class lib.log.ShngMemLogHandler(logname='undefined', maxlen=35, level=0, mapping=['time', 'thread', 'level', 'message'], cache=False)[Quellcode]

Bases: StreamHandler

LogHandler used by MemLog

emit(record)[Quellcode]

Emit a record.

If a formatter is specified, it is used to format the record. The record is then written to the stream with a trailing newline. If exception information is present, it is formatted using traceback.print_exception and appended to the stream. If the stream has an ‚encoding‘ attribute, it is used to determine how to do the output to the stream.

load(logentries)[Quellcode]

Loads logentries (which were just read from cache) into the log object (see lib.log.Log())

class lib.log.ShngTimedRotatingFileHandler(filename, when='MIDNIGHT', interval=1, backupCount=0, encoding=None, delay=False, utc=False)[Quellcode]

Bases: TimedRotatingFileHandler

TimedRotatingFilehandler with a different naming scheme for rotated files

doRollover()[Quellcode]

do a rollover; in this case, a date/time stamp is appended to the filename when the rollover happens. However, you want the file to be named for the start of the interval, not the current time. If there is a backup count, then we have to get a list of matching filenames, sort them and remove the one with the oldest suffix.

getFilesToDelete()[Quellcode]

Determine the files to delete when rolling over.

More specific than the earlier method, which just used glob.glob().