Spaces:
Configuration error
Configuration error
File size: 1,734 Bytes
155b2a4 1fb2616 1f1f651 155b2a4 1fb2616 155b2a4 1f1f651 155b2a4 1fb2616 1f1f651 1fb2616 155b2a4 1fb2616 155b2a4 1f1f651 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 70 71 72 73 74 75 76 |
from pathlib import Path
import logging
import gradio as gr
import tempfile
from gradio_log import Log
import logging
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 = tempfile.mktemp(suffix=".log")
ch = logging.FileHandler(log_file)
ch.setLevel(logging.DEBUG)
ch.setFormatter(formatter)
logger = logging.getLogger()
logger.setLevel(logging.DEBUG)
for handler in logger.handlers:
logger.removeHandler(handler)
logger.addHandler(ch)
logger.info(
"Use the left column to log messages to a file, and the log will be displayed in here."
)
def create_log_handler(level):
def l(text):
getattr(logger, level)(text)
return l
Path(log_file).touch()
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)
if __name__ == "__main__":
demo.launch()
|