p2pfl.management.logger.logger module¶
P2PFL Logger.
Note
Not all is typed because the python logger is not typed (yep, is a TODO…).
- class p2pfl.management.logger.logger.ColoredFormatter(fmt=None, datefmt=None, style='%', validate=True, *, defaults=None)[source]¶
Bases:
Formatter
Formatter that adds color to the log messages.
- exception p2pfl.management.logger.logger.NodeNotRegistered[source]¶
Bases:
Exception
Exception raised when a node is not registered.
- class p2pfl.management.logger.logger.P2PFLogger(nodes=None, disable_locks=False)[source]¶
Bases:
object
Class that manages the node logging (not a singleton).
- Parameters:
p2pfl_web_services – The P2PFL Web Services to log and monitor the nodes remotely.
- add_handler(handler)[source]¶
Add a handler to the logger.
- Parameters:
handler (
Handler
) – The logger handler.- Return type:
None
- connect_web(url, key)[source]¶
Connect to the web services.
- Parameters:
url (
str
) – The URL of the web services.key (
str
) – The API key.
- Return type:
None
- critical(node, message, *, _ray_trace_ctx=None)[source]¶
Log a critical message.
- Parameters:
node (
str
) – The node name.message (
str
) – The message to log.
- Return type:
None
- debug(node, message, *, _ray_trace_ctx=None)[source]¶
Log a debug message.
- Parameters:
node (
str
) – The node name.message (
str
) – The message to log.
- Return type:
None
- error(node, message, *, _ray_trace_ctx=None)[source]¶
Log an error message.
- Parameters:
node (
str
) – The node name.message (
str
) – The message to log.
- Return type:
None
- experiment_finished(node)[source]¶
Notify the experiment end.
- Parameters:
node (
str
) – The node address.- Return type:
None
- experiment_started(node, experiment)[source]¶
Notify the experiment start.
- Parameters:
node (
str
) – The node address.experiment (
Experiment
) – The experiment.
- Return type:
None
- experiment_updated(node, experiment)[source]¶
Notify the round end.
- Parameters:
node (
str
) – The node address.experiment (
Experiment
) – The experiment to update.
- Return type:
None
- get_global_logs()[source]¶
Get the logs.
- Parameters:
node – The node name.
exp – The experiment name.
- Return type:
Dict
[str
,Dict
[str
,Dict
[str
,List
[Tuple
[int
,float
]]]]]- Returns:
The logs.
- get_level_name(lvl)[source]¶
Get the logger level name.
- Parameters:
lvl (
int
) – The logger level.- Return type:
str
- Returns:
The logger level name.
- get_local_logs()[source]¶
Get the logs.
- Parameters:
node – The node name.
exp – The experiment name.
- Return type:
Dict
[str
,Dict
[int
,Dict
[str
,Dict
[str
,List
[Tuple
[int
,float
]]]]]]- Returns:
The logs.
- get_messages(direction='all', node=None, cmd=None, round_num=None, limit=None)[source]¶
Get communication messages with optional filtering.
- Parameters:
direction (
str
) – Filter by message direction (“all”, “sent”, or “received”).node (
Optional
[str
]) – Filter by node address (optional).cmd (
Optional
[str
]) – Filter by command type (optional).round_num (
Optional
[int
]) – Filter by round number (optional).limit (
Optional
[int
]) – Limit the number of messages returned per node (optional).
- Return type:
List
[dict
[str
,Any
]]- Returns:
A flat list of message dictionaries. Each message includes a ‘direction’ field indicating whether it was ‘sent’ or ‘received’.
- get_nodes()[source]¶
Get the registered nodes.
- Return type:
Dict
[str
,Dict
[Any
,Any
]]- Returns:
The registered nodes.
- get_system_metrics()[source]¶
Get the system metrics.
- Return type:
Dict
[datetime
,Dict
[str
,float
]]- Returns:
The system metrics.
- info(node, message, *, _ray_trace_ctx=None)[source]¶
Log an info message.
- Parameters:
node (
str
) – The node name.message (
str
) – The message to log.
- Return type:
None
- log(level, node, message)[source]¶
Log a message.
- Parameters:
level (
int
) – The log level.node (
str
) – The node name.message (
str
) – The message to log.
- Return type:
None
- log_communication(node, direction, cmd, source_dest, package_type, package_size, round_num=None, additional_info=None)[source]¶
Log a communication event.
- Parameters:
node (
str
) – The node address.direction (
str
) – Direction of communication (“sent” or “received”).cmd (
str
) – The command or message type.source_dest (
str
) – Source (if receiving) or destination (if sending) node.package_type (
str
) – Type of package (“message” or “weights”).package_size (
int
) – Size of the package in bytes (if available).round_num (
Optional
[int
]) – The federated learning round number (if applicable).additional_info (
Optional
[Dict
[str
,Any
]]) – Additional information as a dictionary.
- Return type:
None
- log_metric(addr, metric, value, step=None, round=None)[source]¶
Log a metric.
- Parameters:
addr (
str
) – The node name.metric (
str
) – The metric to log.value (
float
) – The value.step (
Optional
[int
]) – The step.round (
Optional
[int
]) – The round.
- Return type:
None
- register_node(node)[source]¶
Register a node.
- Parameters:
node (
str
) – The node address.- Return type:
None
- set_level(level)[source]¶
Set the logger level.
- Parameters:
level (
Union
[int
,str
]) – The logger level.- Return type:
None