Skip to content

Commit

Permalink
refactor: dynamically retrieve maximum buffer size from environment i…
Browse files Browse the repository at this point in the history
…n SizedLogBuffer (#4334)

* Refactor logger to dynamically retrieve max buffer size from environment variable

* fix: add setter to max property
  • Loading branch information
ogabrielluiz authored Nov 1, 2024
1 parent be1ba57 commit 82915be
Showing 1 changed file with 14 additions and 5 deletions.
19 changes: 14 additions & 5 deletions src/backend/base/langflow/logging/logger.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,16 +32,12 @@ def __init__(
The buffer can be overwritten by an env variable LANGFLOW_LOG_RETRIEVER_BUFFER_SIZE
because the logger is initialized before the settings_service are loaded.
"""
self.max: int = 0
env_buffer_size = os.getenv("LANGFLOW_LOG_RETRIEVER_BUFFER_SIZE", "0")
if env_buffer_size.isdigit():
self.max = int(env_buffer_size)

self.buffer: deque = deque()

self._max_readers = max_readers
self._wlock = Lock()
self._rsemaphore = Semaphore(max_readers)
self._max = 0

def get_write_lock(self) -> Lock:
return self._wlock
Expand Down Expand Up @@ -106,6 +102,19 @@ def get_last_n(self, last_idx: int) -> dict[int, str]:
finally:
self._rsemaphore.release()

@property
def max(self) -> int:
# Get it dynamically to allow for env variable changes
if self._max == 0:
env_buffer_size = os.getenv("LANGFLOW_LOG_RETRIEVER_BUFFER_SIZE", "0")
if env_buffer_size.isdigit():
self._max = int(env_buffer_size)
return self._max

@max.setter
def max(self, value: int) -> None:
self._max = value

def enabled(self) -> bool:
return self.max > 0

Expand Down

0 comments on commit 82915be

Please sign in to comment.