cape.cfdx.logger: Logging utilities for CAPE

This module provides the class CaseLogger that is used to record log messages for individual cases.

class cape.cfdx.logger.ArchivistLogger(rootdir: str | None = None)

Logger for archiving of individual case

Call:
>>> logger = ArchivistLogger(rootdir)
Inputs:
rootdir: {None} | str

Absolute path to root folder of case

Outputs:
logger: CaseLogger

Logger instance for one case

log_main(title: str, msg: str)

Write a message to primary case log

Call:
>>> logger.log_main(title, msg)
Inputs:
logger: CaseLogger

Logger instance for one case

title: str

Short string to use as classifier for log message

msg: str

Main content of log message

Versions:
  • 2024-07-31 @ddalle: v1.0

log_warning(title: str, msg: str)

Write a message to verbose case log

Call:
>>> logger.log_warning(title, msg)
Inputs:
logger: CaseLogger

Logger instance for one case

title: str

Short string to use as classifier for log message

msg: str

Main content of log message

Versions:
  • 2024-07-31 @ddalle: v1.0

open_main() → IOBase

Open and return the main log file handle

Call:
>>> fp = logger.open_main()
Inputs:
logger: ArchivistLogger

Logger instance for one case

Outputs:
fp: IOBase

File handle or string stream for main log

Versions:
  • 2024-07-31 @ddalle: v1.0

open_warnings() → IOBase

Open and return the warning log file handle

Call:
>>> fp = logger.open_warnings()
Inputs:
logger: ArchivistLogger

Logger instance for one case

Outputs:
fp: IOBase

File handle or string stream for verbose log

Versions:
  • 2024-07-31 @ddalle: v1.0

rawlog_main(msg: str)

Write a raw message to primary case archiving log

Call:
>>> logger.rawlog_main(msg)
Inputs:
logger: ArchivistLogger

Logger instance for one case

msg: str

Content of log message

Versions:
  • 2024-07-31 @ddalle: v1.0

rawlog_warning(msg: str)

Write a raw message to archiving warning log

Call:
>>> logger.rawlog_warning(msg)
Inputs:
logger: ArchivistLogger

Logger instance for one case

msg: str

Content of log message

Versions:
  • 2024-07-31 @ddalle: v1.0

class cape.cfdx.logger.BaseLogger(rootdir: str | None = None)

Template logger class

Call:
>>> logger = BaseLogger()
Inputs:
rootdir: {None} | str

Absolute path to root folder of case/run matrix

Outputs:
logger: BaseLogger

Logger instance for one case

open_logfile(name: str, fname: str, mode: str = 'a') → IOBase

Open a log file, or get already open text stream

Call:
>>> fp = logger.open_logfile(name, fname, mode='a')
Inputs:
logger: CaseLogger

Logger instance for one case

name: str

Name of logger, used as key in logger.fp

fname: str

Name of log file relative to case’s log dir

mode: {"a"} | "w" | str

File write mode

Outputs:
fp: IOBase

File handle or string stream for verbose log

Versions:
  • 2024-07-31 @ddalle: v1.0

  • 2026-06-08 @ddalle: v1.1, add mode

class cape.cfdx.logger.CaseLogger(rootdir: str | None = None)

Logger for an individual CAPE case

Call:
>>> logger = CaseLogger(rootdir)
Inputs:
rootdir: {None} | str

Absolute path to root folder of case

Outputs:
logger: CaseLogger

Logger instance for one case

log_main(title: str, msg: str)

Write a message to primary case log

Call:
>>> logger.log_main(title, msg)
Inputs:
logger: CaseLogger

Logger instance for one case

title: str

Short string to use as classifier for log message

msg: str

Main content of log message

Versions:
  • 2024-07-31 @ddalle: v1.0

log_state(title: str, msg: str)

Write a message to state case log

Call:
>>> logger.log_state(title, msg)
Inputs:
logger: CaseLogger

Logger instance for one case

title: str

Short string to use as classifier for log message

msg: str

Main content of log message

Versions:
  • 2026-06-10 @ddalle: v1.0

log_status(title: str, msg: str)

Write a message to status case log

Call:
>>> logger.log_status(title, msg)
Inputs:
logger: CaseLogger

Logger instance for one case

title: str

Short string to use as classifier for log message

msg: str

Main content of log message

Versions:
  • 2026-01-15 @aburkhea: v1.0

log_verbose(title: str, msg: str)

Write a message to verbose case log

Call:
>>> logger.log_verbose(title, msg)
Inputs:
logger: CaseLogger

Logger instance for one case

title: str

Short string to use as classifier for log message

msg: str

Main content of log message

Versions:
  • 2024-07-31 @ddalle: v1.0

logdict_status(title: str, data: dict)

Write a dict to the status log as JSON content

Call:
>>> logger.logdict_status(title, data)
Inputs:
logger: CaseLogger

Logger instance for one case

title: str

Short string to use as classifier for log message

data: dict

Information to write as JSON log

Versions:
  • 2026-01-15 @aburkhea: v1.0

logdict_verbose(title: str, data: dict)

Write a dict to the verbose log as JSON content

Call:
>>> logger.logdict_verbose(title, data)
Inputs:
logger: CaseLogger

Logger instance for one case

title: str

Short string to use as classifier for log message

data: dict

Information to write as JSON log

Versions:
  • 2024-07-31 @ddalle: v1.0

open_main() → IOBase

Open and return the main log file handle

Call:
>>> fp = logger.open_main()
Inputs:
logger: CaseLogger

Logger instance for one case

Outputs:
fp: IOBase

File handle or string stream for main log

Versions:
  • 2024-07-31 @ddalle: v1.0

open_state() → IOBase

Open and return the “state” log file handle

Call:
>>> fp = logger.open_state()
Inputs:
logger: CaseLogger

Logger instance for one case

Outputs:
fp: IOBase

File handle or string stream for state log

Versions:
  • 2026-06-10 @ddalle: v1.0

open_status() → IOBase

Open and return the status log file handle

Call:
>>> fp = logger.open_status()
Inputs:
logger: CaseLogger

Logger instance for one case

Outputs:
fp: IOBase

File handle or string stream for status log

Versions:
  • 2026-01-15 @aburkhea: v1.0

open_verbose() → IOBase

Open and return the verbose log file handle

Call:
>>> fp = logger.open_verbose()
Inputs:
logger: CaseLogger

Logger instance for one case

Outputs:
fp: IOBase

File handle or string stream for verbose log

Versions:
  • 2024-07-31 @ddalle: v1.0

rawlog_main(msg: str)

Write a raw message to primary case log

Call:
>>> logger.rawlog_main(msg)
Inputs:
logger: CaseLogger

Logger instance for one case

msg: str

Content of log message

Versions:
  • 2024-07-31 @ddalle: v1.0

rawlog_state(msg: str)

Write a raw message to state case log

Call:
>>> logger.rawlog_state(msg)
Inputs:
logger: CaseLogger

Logger instance for one case

msg: str

Content of log message

Versions:
  • 2026-06-10 @ddalle: v1.0

rawlog_status(msg: str)

Write a raw message to status case log

Call:
>>> logger.rawlog_status(msg)
Inputs:
logger: CaseLogger

Logger instance for one case

msg: str

Content of log message

Versions:
  • 2026-01-15 @aburkhea: v1.0

rawlog_verbose(msg: str)

Write a raw message to verbose case log

Call:
>>> logger.rawlog_verbose(msg)
Inputs:
logger: CaseLogger

Logger instance for one case

msg: str

Content of log message

Versions:
  • 2024-07-31 @ddalle: v1.0

class cape.cfdx.logger.CntlLogger(rootdir: str, fname: str)
log_archive(txt: str, mode: str = 'a')

Log the current settings

Call:
>>> logger.log_archive(opts)
Inputs:
logger: CaseLogger

Logger instance for one case

txt: str

Raw content to write

Versions:
  • 2026-06-08 @ddalle: v1.0

log_cmd(title: str, msg: str)

Write a message to comnand log

Call:
>>> logger.log_cmd(title, msg)
Inputs:
logger: CaseLogger

Logger instance for one case

title: str

Short string to use as classifier for log message

msg: str

Main content of log message

Versions:
  • 2026-01-05 @ddalle: v1.0

log_hash(txt: str)

Log the current hash of the JSON settings

Call:
>>> logger.log_hash(txt)
Inputs:
logger: CaseLogger

Logger instance for one case

txt: str

SHA-1 or other hash to write

Versions:
  • 2026-06-08 @ddalle: v1.0

log_last(txt, mode: str = 'w')

Log the current JSON settings

Call:
>>> logger.log_last(txt, mode='w')
Inputs:
logger: CaseLogger

Logger instance for one case

txt: str

Single-line JSON of current settings to write

mode: "a" | {"w"}

File mode, append or write

Versions:
  • 2026-06-09 @ddalle: v1.0

log_main(title: str, msg: str)

Write a message to primary case log

Call:
>>> logger.log_main(title, msg)
Inputs:
logger: CaseLogger

Logger instance for one case

title: str

Short string to use as classifier for log message

msg: str

Main content of log message

Versions:
  • 2024-07-31 @ddalle: v1.0

log_verbose(title: str, msg: str)

Write a message to verbose case log

Call:
>>> logger.log_verbose(title, msg)
Inputs:
logger: CaseLogger

Logger instance for one case

title: str

Short string to use as classifier for log message

msg: str

Main content of log message

Versions:
  • 2024-07-31 @ddalle: v1.0

logdict_verbose(title: str, data: dict)

Write a dict to the verbose log as JSON content

Call:
>>> logger.logdict_verbose(title, data)
Inputs:
logger: CaseLogger

Logger instance for one case

title: str

Short string to use as classifier for log message

data: dict

Information to write as JSON log

Versions:
  • 2024-07-31 @ddalle: v1.0

open_cmd() → IOBase

Open and return the “cmd” simple log file handle

Call:
>>> fp = logger.open_cmd()
Inputs:
logger: CaseLogger

Logger instance for one case

Outputs:
fp: IOBase

File handle or string stream for “cmd” log

Versions:
  • 2026-01-05 @ddalle: v1.0

open_last(mode: str = 'w') → IOBase

Open and return the last.json log file handle

Call:
>>> fp = logger.open_last(mode='w')
Inputs:
logger: CaseLogger

Logger instance for one case

Outputs:
fp: IOBase

File handle or string stream for main log

mode: 'a' | 'r' | {'w'} | str

File mode, append, read, or write

Versions:
  • 2026-06-09 @ddalle: v1.0

open_main() → IOBase

Open and return the main log file handle

Call:
>>> fp = logger.open_main()
Inputs:
logger: CaseLogger

Logger instance for one case

Outputs:
fp: IOBase

File handle or string stream for main log

Versions:
  • 2025-04-30 @ddalle: v1.0

open_verbose() → IOBase

Open and return the verbose log file handle

Call:
>>> fp = logger.open_verbose()
Inputs:
logger: CaseLogger

Logger instance for one case

Outputs:
fp: IOBase

File handle or string stream for verbose log

Versions:
  • 2025-04-30 @ddalle: v1.0

rawlog_cmd(msg: str)

Write a raw message to command log

Call:
>>> logger.rawlog_cmd(msg)
Inputs:
logger: CaseLogger

Logger instance for one case

msg: str

Content of log message

Versions:
  • 2026-01-05 @ddalle: v1.0

rawlog_hash(msg: str)

Write a raw message to hash log

Call:
>>> logger.rawlog_hash(msg)
Inputs:
logger: CaseLogger

Logger instance for one case

msg: str

Content of log message

Versions:
  • 2026-06-08 @ddalle: v1.0

rawlog_last(msg: str, mode: str = 'w')

Write a raw message to hash log

Call:
>>> logger.rawlog_last(msg, mode='w')
Inputs:
logger: CaseLogger

Logger instance for one case

msg: str

Content of log message

mode: "a" | {"w"}

File mode

Versions:
  • 2026-06-08 @ddalle: v1.0

rawlog_main(msg: str)

Write a raw message to primary case log

Call:
>>> logger.rawlog_main(msg)
Inputs:
logger: CaseLogger

Logger instance for one case

msg: str

Content of log message

Versions:
  • 2024-07-31 @ddalle: v1.0

rawlog_verbose(msg: str)

Write a raw message to verbose case log

Call:
>>> logger.rawlog_verbose(msg)
Inputs:
logger: CaseLogger

Logger instance for one case

msg: str

Content of log message

Versions:
  • 2024-07-31 @ddalle: v1.0