mirror of
https://git.datalinker.icu/comfyanonymous/ComfyUI
synced 2026-11-12 02:53:29 +08:00
Changed to memory logger
This commit is contained in:
parent
1e2c74fa3e
commit
ba08ca2d2e
@ -2,7 +2,7 @@ from aiohttp import web
|
||||
from typing import Optional
|
||||
from folder_paths import models_dir, user_directory, output_directory
|
||||
from api_server.services.file_service import FileService
|
||||
from app.log_interceptor import logs
|
||||
import app.logger
|
||||
|
||||
class InternalRoutes:
|
||||
'''
|
||||
@ -34,13 +34,7 @@ class InternalRoutes:
|
||||
|
||||
@self.routes.get('/logs')
|
||||
async def get_logs(request):
|
||||
return web.json_response([
|
||||
{
|
||||
'timestamp': dt.isoformat(),
|
||||
'message': message
|
||||
}
|
||||
for dt, message in logs
|
||||
])
|
||||
return web.json_response(app.logger.get_logs())
|
||||
|
||||
def get_app(self):
|
||||
if self._app is None:
|
||||
|
||||
@ -1,21 +0,0 @@
|
||||
import io
|
||||
import threading
|
||||
from datetime import datetime
|
||||
|
||||
from collections import deque
|
||||
logs = deque(maxlen=300)
|
||||
|
||||
class LogInterceptor(io.TextIOWrapper):
|
||||
def __init__(self, stream, *args, **kwargs):
|
||||
buffer = stream.buffer
|
||||
encoding = stream.encoding
|
||||
super().__init__(buffer, *args, **kwargs, encoding=encoding)
|
||||
self._lock = threading.Lock()
|
||||
|
||||
def write(self, data):
|
||||
with self._lock:
|
||||
logs.append((datetime.now(), data))
|
||||
super().write(data)
|
||||
|
||||
def flush(self):
|
||||
super().flush()
|
||||
25
app/logger.py
Normal file
25
app/logger.py
Normal file
@ -0,0 +1,25 @@
|
||||
import logging
|
||||
from logging.handlers import MemoryHandler
|
||||
from collections import deque
|
||||
|
||||
logs = None
|
||||
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
|
||||
|
||||
def get_logs():
|
||||
return '\n'.join([formatter.format(x) for x in logs])
|
||||
|
||||
def setup_logger(capacity=300):
|
||||
global logs
|
||||
if logs: return
|
||||
|
||||
# Setup default global logger
|
||||
logger = logging.getLogger()
|
||||
logger.setLevel(logging.INFO)
|
||||
logger.addHandler(logging.StreamHandler())
|
||||
|
||||
# Create a memory handler with a deque as its buffer
|
||||
logs = deque(maxlen=capacity)
|
||||
memory_handler = MemoryHandler(capacity, flushLevel=logging.INFO)
|
||||
memory_handler.buffer = logs
|
||||
memory_handler.setFormatter(formatter)
|
||||
logger.addHandler(memory_handler)
|
||||
7
main.py
7
main.py
@ -1,11 +1,8 @@
|
||||
import comfy.options
|
||||
comfy.options.enable_args_parsing()
|
||||
|
||||
# Intercept logs for error reporting
|
||||
import sys
|
||||
from app.log_interceptor import LogInterceptor
|
||||
sys.stdout = LogInterceptor(sys.stdout)
|
||||
sys.stderr = LogInterceptor(sys.stderr)
|
||||
from app.logger import setup_logger
|
||||
setup_logger()
|
||||
|
||||
import os
|
||||
import importlib.util
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user