Skip to content

Commit 4a16756

Browse files
committed
Fix loglevel bug, cleanup deepcopy
1 parent c93c07e commit 4a16756

2 files changed

Lines changed: 14 additions & 29 deletions

File tree

src/daqpytools/apps/logging_demonstrator.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@
1010
LogHandlerConf,
1111
dummy_add_ERSTrace_handler,
1212
ThrottleFilter,
13+
ERSHandlerConf,
14+
StreamType,
1315
)
1416
from daqpytools.logging.levels import logging_log_level_keys
1517
from daqpytools.logging.logger import get_daq_logger

src/daqpytools/logging/handlers.py

Lines changed: 12 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import io
44
import logging
5+
import copy
56
import os
67
import re
78
import sys
@@ -193,23 +194,22 @@ def reset(self):
193194
class BaseHandlerFilter(logging.Filter):
194195
def __init__(self):
195196
super().__init__()
197+
#TODO/ask: See if we want to define this mapping elsewhere
198+
self.level_to_ers_var = {
199+
logging.ERROR: "DUNEDAQ_ERS_ERROR",
200+
logging.WARNING: "DUNEDAQ_ERS_WARNING",
201+
logging.CRITICAL: "DUNEDAQ_ERS_FATAL",
202+
logging.INFO: "DUNEDAQ_ERS_INFO",
203+
}
196204

197205
def get_allowed(self, record) -> list | None:
198206
# TODO/future: kafka protobufs should validate url/port match before transmitting
199207

200208
# Handle the ERS case, requires more processing
201209
if getattr(record, "stream", None) == StreamType.ERS:
202-
#TODO/ask: See if we want to define this mapping elsewhere
203-
level_to_ers_var = {
204-
"ERROR": "DUNEDAQ_ERS_ERROR",
205-
"WARNING": "DUNEDAQ_ERS_WARNING",
206-
"CRITICAL": "DUNEDAQ_ERS_FATAL",
207-
"INFO": "DUNEDAQ_ERS_INFO",
208-
}
209-
210210
# Chain None checks using walrus operator
211211
if (
212-
(ers_level_var := level_to_ers_var.get(record.levelname)) is None
212+
(ers_level_var := self.level_to_ers_var.get(record.levelno)) is None
213213
or (ers_handlers := getattr(record, "ers_handlers", None)) is None
214214
or (ershandlerconf := ers_handlers.get(ers_level_var)) is None
215215
):
@@ -362,32 +362,15 @@ def _report_suppression(self, rec: IssueRecord, record: logging.LogRecord):
362362
if rec.suppressed_counter == 0:
363363
return
364364

365-
# Create a new log record for the suppression notice
366-
suppression_record = logging.LogRecord(
367-
name=record.name,
368-
level=record.levelno,
369-
pathname=record.pathname,
370-
lineno=record.lineno,
371-
msg=record.msg,
372-
args=record.args,
373-
exc_info=None,
374-
func=record.funcName,
375-
sinfo=None
376-
)
377-
378-
# Attach other attributes and set throttle suppression
379-
suppression_record._throttle_suppression = True
380-
for key in record.__dict__:
381-
if not hasattr(suppression_record, key):
382-
setattr(suppression_record, key, getattr(record, key))
365+
suppression_record = copy.deepcopy(record)
366+
suppression_record._throttle_suppression = True # pass through filter to report
383367

384368
# Append suppression information to the message
385-
original_msg = record.getMessage()
386369
suppression_msg = (
387370
f" -- {rec.suppressed_counter} similar messages suppressed, "
388371
f"last occurrence was at {rec.last_occurrence_formatted}"
389372
)
390-
suppression_record.msg = original_msg + suppression_msg
373+
suppression_record.msg = record.getMessage() + suppression_msg
391374
suppression_record.args = () # Clear args since we already formatted
392375

393376
# Emit directly - will pass through filter due to flag

0 commit comments

Comments
 (0)