Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/pablolec/livelog
Python logger and live reader
https://github.com/pablolec/livelog
cli console cui debugging events linux log logger logging logging-library logs macos print python terminal tui utility windows
Last synced: 25 days ago
JSON representation
Python logger and live reader
- Host: GitHub
- URL: https://github.com/pablolec/livelog
- Owner: PabloLec
- License: gpl-3.0
- Created: 2021-09-28T10:18:15.000Z (about 3 years ago)
- Default Branch: master
- Last Pushed: 2023-04-14T17:05:29.000Z (over 1 year ago)
- Last Synced: 2024-09-18T20:47:10.374Z (about 2 months ago)
- Topics: cli, console, cui, debugging, events, linux, log, logger, logging, logging-library, logs, macos, print, python, terminal, tui, utility, windows
- Language: Python
- Homepage:
- Size: 368 KB
- Stars: 8
- Watchers: 2
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
---
`livelog` is yet another Python logger.
Its main purpose is to provide live logging for situation where logging to console is not possible. For example working on a GUI, TUI, a software plugin or a script instanciated from a different shell.
It provides a `Logger` object for your code and a built-in reader to see your logs in real time from another shell.
Even if its overall behavior is opinionated it does offer some customization.## Demo
## Installation
```
python3 -m pip install livelog
```## Logging
#### Basics
In your code, create a `Logger` instance with:
``` python
from livelog import Loggerlogger = Logger()
```#### Parameters
`Logger` takes multiple optional arguments:
- `file` (str): Path for your logging file. Default is a file named "livelog.log" in your system tmp directory.
- `level` (str): Minimum level to be logged. Default is "DEBUG", you can also select "INFO", "WARNING", and "ERROR". Note that level filtering can also be done directly from the reader.
- `enabled` (bool): Whether logging is enabled or not. Default is True.
- `erase` (bool): Whether preexisting logging file should be erased or not. Default is True.``` python
from livelog import Loggerlogger = Logger(file= "/home/user/",
level = "INFO",
enabled = False,
erase = False)
```#### Methods
Use the following methods to write log messages:
- `logger.debug("message")`
- `logger.info("message")`
- `logger.warn("message")`
- `logger.error("message")```` python
from livelog import Loggerlogger = Logger()
logger.debug("This is a debug message")
logger.info("This is an info message")
logger.warn("This is a warning message")
logger.error("This is an error message")
```#### Attributes
You can get and set attributes after instantiation:
``` python
from livelog import Loggerlogger = Logger(file="/tmp/file.log")
logger.debug("This will write to /tmp/file.log")logger.file = "/tmp/another_file.log"
logger.debug("This will write to /tmp/another_file.log")logger.level = "ERROR"
logger.debug("This debug message will not be written.")logger.enabled = False
logger.error("Logging disabled. This error message will not be written.")
```#### Singleton
`livelog` also provides a built-in singleton:
```your_first_file.py```
``` python
from livelog import LoggerSingletonlogger = LoggerSingleton(file="/tmp/file.log")
logger.debug("This will write to /tmp/file.log")
``````another_file.py```
``` python
from livelog import LoggerSingletonlogger = LoggerSingleton()
# LoggerSingleton() returned the instance from your first file.
logger.debug("This will write to /tmp/file.log")
```## Reading
Although you can access to your logging file like any other, you can use the provided reader.
If you did not specify a file for `Logger` simply use:
```
python3 -m livelog
````livelog` will read in real time the default log file.
#### Options
- `-f` or `--file` - Set the path of your logging file
- `-l` or `--level` - Set the minimum log level to be read.
- `--nocolors` - Do not print colors*Example:*
```
python3 -m livelog -f /tmp/myfile.log -l INFO --nocolors
```