Skip to content

Commit 55025a6

Browse files
committed
keep throttle helper dict to max 1024 entries
1 parent 5deddc9 commit 55025a6

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

flexbe_core/src/flexbe_core/logger.py

+10
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@ class Logger(object):
1616

1717
LOGGING_TOPIC = 'flexbe/log'
1818

19+
# max number of items in last logged dict (used for log_throttle)
20+
MAX_LAST_LOGGED_SIZE = 1024
21+
1922
_pub = None
2023

2124
@staticmethod
@@ -45,6 +48,13 @@ def log_throttle(period, text, severity):
4548
Logger.log(text, severity)
4649
Logger._last_logged.update({log_id: rospy.Time.now()})
4750

51+
if len(Logger._last_logged) > Logger.MAX_LAST_LOGGED_SIZE:
52+
# iterate through last logged items, sorted by the timestamp (oldest last)
53+
for i, log in enumerate(sorted(Logger._last_logged.items(), key=lambda item: item[1], reverse=True)):
54+
# remove oldest items that exceed the max logged size
55+
if i > Logger.MAX_LAST_LOGGED_SIZE:
56+
Logger._last_logged.pop(log[0])
57+
4858
@staticmethod
4959
def local(text, severity):
5060
if severity == Logger.REPORT_INFO:

0 commit comments

Comments
 (0)