Spaces:
Configuration error
Configuration error
File size: 1,658 Bytes
155b2a4 53b081c 155b2a4 53b081c 1fb2616 155b2a4 a6c1f70 c8b13b5 1f1f651 155b2a4 c8b13b5 155b2a4 c8b13b5 155b2a4 1fb2616 155b2a4 1fb2616 155b2a4 53b081c 1fb2616 |
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 64 65 66 67 68 69 |
import logging
from pathlib import Path
import gradio as gr
from gradio_log import Log
class CustomFormatter(logging.Formatter):
green = "\x1b[32;20m"
blue = "\x1b[34;20m"
yellow = "\x1b[33;20m"
red = "\x1b[31;20m"
bold_red = "\x1b[31;1m"
reset = "\x1b[0m"
format = "%(asctime)s - %(levelname)s - %(message)s (%(filename)s:%(lineno)d)"
FORMATS = {
logging.DEBUG: blue + format + reset,
logging.INFO: green + format + reset,
logging.WARNING: yellow + format + reset,
logging.ERROR: red + format + reset,
logging.CRITICAL: bold_red + format + reset,
}
def format(self, record):
log_fmt = self.FORMATS.get(record.levelno)
formatter = logging.Formatter(log_fmt)
return formatter.format(record)
formatter = CustomFormatter()
log_file = "/tmp/gradio_log.txt"
Path(log_file).touch()
ch = logging.FileHandler(log_file)
ch.setLevel(logging.DEBUG)
ch.setFormatter(formatter)
logger = logging.getLogger("gradio_log")
logger.setLevel(logging.DEBUG)
for handler in logger.handlers:
logger.removeHandler(handler)
logger.addHandler(ch)
logger.info("The logs will be displayed in here.")
def create_log_handler(level):
def l(text):
getattr(logger, level)(text)
return l
with gr.Blocks() as demo:
text = gr.Textbox(label="Enter text to write to log file")
with gr.Row():
for l in ["debug", "info", "warning", "error", "critical"]:
button = gr.Button(f"log as {l}")
button.click(fn=create_log_handler(l), inputs=text)
Log(log_file, dark=True)
if __name__ == "__main__":
demo.launch()
|