File size: 1,615 Bytes
9e8809b |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
'''Collection of helper functions for Gradio UI and interface.'''
import os
import re
import logging
from pathlib import Path
from logging.handlers import RotatingFileHandler
def configure_root_logger() -> None:
'''Configures root logger for project-wide logging.'''
# Make sure log directory exists
Path('logs').mkdir(parents=True, exist_ok=True)
# Clear old logs if present
delete_old_logs('logs', 'rss_server')
# Set up the root logger so we catch logs from
logging.basicConfig(
handlers=[RotatingFileHandler(
'logs/rss_server.log',
maxBytes=100000,
backupCount=10,
mode='w'
)],
level=logging.INFO,
format='%(levelname)s - %(name)s - %(message)s'
)
def update_log(n: int = 10):
'''Gets updated logging output from disk to display to user.
Args:
n: number of most recent lines of log output to display
Returns:
Logging output as string
'''
with open('logs/rss_server.log', 'r', encoding='utf-8') as log_file:
lines = log_file.readlines()
return ''.join(lines[-n:])
def delete_old_logs(directory:str, basename:str) -> None:
'''Deletes old log files from previous optimization sessions, if present.
Args:
directory: path to log file directory as string
basename: log file base name as string
Returns:
None
'''
for filename in os.listdir(directory):
file_path = os.path.join(directory, filename)
if re.search(basename, filename):
os.remove(file_path)
|