Отключение файлового логирования для API сервера и перенаправление в stdout
Browse files- fallback.py +27 -9
fallback.py
CHANGED
@@ -241,14 +241,20 @@ def main():
|
|
241 |
api_env = os.environ.copy()
|
242 |
api_env["TEN_AGENT_DIR"] = str(agents_dir)
|
243 |
api_env["GOCACHE"] = str(go_cache_dir) # Устанавливаем переменную GOCACHE
|
244 |
-
|
245 |
-
|
|
|
|
|
|
|
|
|
246 |
|
247 |
# Выводим важные переменные окружения
|
248 |
print(f"Environment variables:")
|
249 |
print(f"TEN_AGENT_DIR: {api_env.get('TEN_AGENT_DIR')}")
|
250 |
-
print(f"
|
251 |
-
print(f"
|
|
|
|
|
252 |
|
253 |
# Дополнительно проверяем права на исполнение через ls -la
|
254 |
subprocess.run(["ls", "-la", api_bin_str], check=True)
|
@@ -256,12 +262,11 @@ def main():
|
|
256 |
# Проверяем директорию логов
|
257 |
subprocess.run(["ls", "-la", str(logs_dir)], check=True)
|
258 |
|
259 |
-
# Запускаем API сервер
|
260 |
print(f"Executing API server: {api_bin_str}")
|
261 |
try:
|
262 |
-
# Аргументы командной строки для указания директории логов
|
263 |
api_process = subprocess.Popen(
|
264 |
-
[api_bin_str, "--
|
265 |
env=api_env,
|
266 |
stdout=subprocess.PIPE,
|
267 |
stderr=subprocess.PIPE
|
@@ -270,8 +275,8 @@ def main():
|
|
270 |
print(f"Failed to start API server: {e}")
|
271 |
sys.exit(1)
|
272 |
|
273 |
-
# Даем серверу время для запуска
|
274 |
-
time.sleep(
|
275 |
|
276 |
# Проверяем, запустился ли сервер
|
277 |
if api_process.poll() is not None:
|
@@ -281,6 +286,15 @@ def main():
|
|
281 |
print(f"STDERR: {stderr.decode()}")
|
282 |
sys.exit(1)
|
283 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
284 |
print("API server started successfully")
|
285 |
|
286 |
# Запускаем playground
|
@@ -314,6 +328,10 @@ def main():
|
|
314 |
def stream_output(process, name):
|
315 |
for line in iter(process.stdout.readline, b''):
|
316 |
print(f"[{name}] {line.decode().strip()}")
|
|
|
|
|
|
|
|
|
317 |
|
318 |
api_thread = threading.Thread(target=stream_output, args=(api_process, "API"))
|
319 |
ui_thread = threading.Thread(target=stream_output, args=(playground_process, "UI"))
|
|
|
241 |
api_env = os.environ.copy()
|
242 |
api_env["TEN_AGENT_DIR"] = str(agents_dir)
|
243 |
api_env["GOCACHE"] = str(go_cache_dir) # Устанавливаем переменную GOCACHE
|
244 |
+
|
245 |
+
# Отключаем логирование в файл
|
246 |
+
api_env["GF_LOG_MODE"] = "console" # Логирование только в консоль
|
247 |
+
api_env["LOG_LEVEL"] = "error" # Минимальный уровень логирования
|
248 |
+
api_env["TEN_LOG_DISABLE_FILE"] = "true" # Отключаем логирование в файл (кастомная переменная)
|
249 |
+
api_env["GF_LOG_FILE_STAT"] = "false" # Отключаем статистику файлов логов
|
250 |
|
251 |
# Выводим важные переменные окружения
|
252 |
print(f"Environment variables:")
|
253 |
print(f"TEN_AGENT_DIR: {api_env.get('TEN_AGENT_DIR')}")
|
254 |
+
print(f"GF_LOG_MODE: {api_env.get('GF_LOG_MODE')}")
|
255 |
+
print(f"LOG_LEVEL: {api_env.get('LOG_LEVEL')}")
|
256 |
+
print(f"TEN_LOG_DISABLE_FILE: {api_env.get('TEN_LOG_DISABLE_FILE')}")
|
257 |
+
print(f"GOCACHE: {api_env.get('GOCACHE')}")
|
258 |
|
259 |
# Дополнительно проверяем права на исполнение через ls -la
|
260 |
subprocess.run(["ls", "-la", api_bin_str], check=True)
|
|
|
262 |
# Проверяем директорию логов
|
263 |
subprocess.run(["ls", "-la", str(logs_dir)], check=True)
|
264 |
|
265 |
+
# Запускаем API сервер с передачей аргумента для отключения файлового логирования
|
266 |
print(f"Executing API server: {api_bin_str}")
|
267 |
try:
|
|
|
268 |
api_process = subprocess.Popen(
|
269 |
+
[api_bin_str, "--log_to_stdout", "--disable_file_logging"],
|
270 |
env=api_env,
|
271 |
stdout=subprocess.PIPE,
|
272 |
stderr=subprocess.PIPE
|
|
|
275 |
print(f"Failed to start API server: {e}")
|
276 |
sys.exit(1)
|
277 |
|
278 |
+
# Даем серверу время для запуска и выводим любые ошибки сразу
|
279 |
+
time.sleep(2)
|
280 |
|
281 |
# Проверяем, запустился ли сервер
|
282 |
if api_process.poll() is not None:
|
|
|
286 |
print(f"STDERR: {stderr.decode()}")
|
287 |
sys.exit(1)
|
288 |
|
289 |
+
# Проверяем доступность API
|
290 |
+
print("Testing API server availability...")
|
291 |
+
try:
|
292 |
+
import urllib.request
|
293 |
+
response = urllib.request.urlopen("http://localhost:8080/graphs")
|
294 |
+
print(f"API server is responding! Response: {response.read().decode()}")
|
295 |
+
except Exception as e:
|
296 |
+
print(f"API server is not responding yet, but continuing... ({e})")
|
297 |
+
|
298 |
print("API server started successfully")
|
299 |
|
300 |
# Запускаем playground
|
|
|
328 |
def stream_output(process, name):
|
329 |
for line in iter(process.stdout.readline, b''):
|
330 |
print(f"[{name}] {line.decode().strip()}")
|
331 |
+
|
332 |
+
# После завершения стандартного вывода, читаем stderr
|
333 |
+
for line in iter(process.stderr.readline, b''):
|
334 |
+
print(f"[{name} ERROR] {line.decode().strip()}")
|
335 |
|
336 |
api_thread = threading.Thread(target=stream_output, args=(api_process, "API"))
|
337 |
ui_thread = threading.Thread(target=stream_output, args=(playground_process, "UI"))
|