# `gradio_log`
A Log component for Gradio which can easily show some log file in the interface.
## Installation
```bash
pip install gradio_log
```
## Usage
```python
import gradio as gr
from gradio_log import Log
import os
with open("./test.log", "wb") as f:
# write some random log to f, with colored and uncolored text
f.write(b"[INFO] Everything is fine.\n")
f.write(b"\x1b[34m[DEBUG] Debugging information.\x1b[0m\n")
f.write(b"\x1b[32m[SUCCESS] Task completed successfully.\x1b[0m\n")
f.write(b"\x1b[33m[WARNING] Something is not right.\x1b[0m\n")
f.write(b"\x1b[31m[ERROR] Unexpected error occured.\x1b[0m\n")
with gr.Blocks(theme=gr.themes.Soft()) as demo:
with gr.Row():
with gr.Column(scale=1):
Log("./test.log")
with gr.Column(scale=1):
Log(
"./test.log",
dark=True,
tail=4,
label="dark mode, read from last 4 lines of log",
)
if __name__ == "__main__":
demo.launch()
```
## `Log`
### Initialization
name | type | default | description |
---|---|---|---|
log_file |
```python str ``` | None |
the log file path to read from. |
tail |
```python int ``` | 100 |
from the end of the file, the number of lines to start read from. |
dark |
```python bool ``` | False |
if True, will render the component in dark mode. |
label |
```python str | None ``` | None |
The label for this component. Appears above the component and is also used as the header if there are a table of examples for this component. If None and used in a `gr.Interface`, the label will be the name of the parameter this component is assigned to. |
info |
```python str | None ``` | None |
additional component description. |
every |
```python float ``` | 0.3 |
New log pulling interval. |
show_label |
```python bool | None ``` | None |
if True, will display label. |
container |
```python bool ``` | True |
If True, will place the component in a container - providing some extra padding around the border. |
scale |
```python int | None ``` | None |
relative size compared to adjacent Components. For example if Components A and B are in a Row, and A has scale=2, and B has scale=1, A will be twice as wide as B. Should be an integer. scale applies in Rows, and to top-level Components in Blocks where fill_height=True. |
min_width |
```python int ``` | 160 |
minimum pixel width, will wrap if not sufficient screen space to satisfy this value. If a certain scale value results in this Component being narrower than min_width, the min_width parameter will be respected first. |
interactive |
```python bool | None ``` | None |
if True, will be rendered as an editable textbox; if False, editing will be disabled. If not provided, this is inferred based on whether the component is used as an input or output. |
visible |
```python bool ``` | True |
If False, component will be hidden. |
elem_id |
```python str | None ``` | None |
An optional string that is assigned as the id of this component in the HTML DOM. Can be used for targeting CSS styles. |
elem_classes |
```python list[str] | str | None ``` | None |
An optional list of strings that are assigned as the classes of this component in the HTML DOM. Can be used for targeting CSS styles. |
render |
```python bool ``` | True |
If False, component will not render be rendered in the Blocks context. Should be used if the intention is to assign event listeners now but render the component later. |