refactor: dynamically retrieve maximum buffer size from environment in SizedLogBuffer (#4334)

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

* fix: add setter to max property
This commit is contained in:
Gabriel Luiz Freitas Almeida 2024-11-01 12:03:35 -03:00 committed by GitHub
commit 82915be03f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -32,16 +32,12 @@ class SizedLogBuffer:
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
@ -106,6 +102,19 @@ class SizedLogBuffer:
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