|
import logging |
|
import os |
|
import sys |
|
from logging.handlers import RotatingFileHandler |
|
|
|
|
|
os.makedirs('logs', exist_ok=True) |
|
|
|
|
|
logger = logging.getLogger() |
|
logger.setLevel(logging.INFO) |
|
|
|
|
|
for handler in logger.handlers[:]: |
|
logger.removeHandler(handler) |
|
|
|
|
|
formatter = logging.Formatter( |
|
'%(asctime)s - %(name)s - %(levelname)s - %(message)s', |
|
datefmt='%Y-%m-%d %H:%M:%S' |
|
) |
|
|
|
|
|
console_handler = logging.StreamHandler(sys.stdout) |
|
console_handler.setFormatter(formatter) |
|
logger.addHandler(console_handler) |
|
|
|
|
|
file_handler = RotatingFileHandler( |
|
'logs/app.log', |
|
maxBytes=5*1024*1024, |
|
backupCount=3, |
|
encoding='utf-8' |
|
) |
|
file_handler.setFormatter(formatter) |
|
logger.addHandler(file_handler) |
|
|
|
|
|
logger = logging.getLogger("ClipQuery") |
|
logger.setLevel(logging.INFO) |
|
|
|
|
|
log_buffer = logging.handlers.MemoryHandler( |
|
capacity=1024*100, |
|
target=logging.StreamHandler(open('logs/app.log', 'a', encoding='utf-8')) |
|
) |
|
log_buffer.setFormatter(formatter) |
|
logger.addHandler(log_buffer) |
|
|
|
def get_logs(): |
|
"""Get the most recent logs from the buffer.""" |
|
log_file = os.path.join(os.path.dirname(__file__), 'logs/app.log') |
|
if os.path.exists(log_file): |
|
with open(log_file, 'r', encoding='utf-8') as f: |
|
return f.read() |
|
return "No log file found." |
|
|