An ugly, slow Logger class for python
Project description
uglylogger
An ugly, slow Logger class for python
FAQ
Why required python version is equal or greater than 3.10?
- match .. case .. is introduced in 3.10 and I am not interested in supporting older releases
Why is it ugly?
- I am not an expert on Python
- It is not thread-safe
- I don't know what happens if two instances are created with the same name, and I don't care. I'd never do that
- The solo purpose is to have an easy to use and easy to read logger class
Why is it ugly but not that ugly?
- it is easy to use and easy to read
- I may keep this library up-to-date and even optimize it in the future
- at least it has a CI/CD pipeline
Installation
pip install uglylogger
Release Notes
Usage
Instantiate
# A logger which can log both to console and to a file
logger = Logger("name", "file.log")
# A logger which can only log to console
logger = Logger("name")
Release the resources
logger.release()
- Releases the resources, it's safe to delete the log file after calling this method
Color Mode
logger.set_color_mode(LogColorMode.COLORED)
- coloroed output if the console/terminal supports it
logger.set_color_mode(LogColorMode.MONO)
- no color used for the console/terminal output
Log to console
logger.console("Message", color=LogColor.BLACK, level=LogLevel.DEBUG)
- color and level are optional
- if not provided, default color is BLACK
- if not provided, default level is DEBUG
Log to file
logger.file("Message", level=LogLevel.DEBUG)
- level is optional
- if not provided, default level is DEBUG
- if instantiated without a file name, nothing happens
Log to both file and console
logger.log("Message", color=LogColor.BLACK, level=LogLevel.DEBUG, output=LogOutput.ALL)
- color, level and output are optional
- if not provided, default color is BLACK
- if not provided, default level is DEBUG
- if not provided, default output is ALL
- if instantiated without a file name, writing to file is ignored
Other ways of logging
logger.debug("Message", color=LogColor.BLACK, output=LogOutput.ALL)
logger.info("Message", color=LogColor.BLACK, output=LogOutput.ALL)
logger.warning("Message", color=LogColor.BLACK, output=LogOutput.ALL)
logger.error("Message", color=LogColor.BLACK, output=LogOutput.ALL)
logger.critical("Message", color=LogColor.BLACK, output=LogOutput.ALL)
Available LogColor
- BLACK
- RED
- GREEN
- YELLOW
- BLUE
- MAGENTA
- CYAN
- WHITE
Available LogLevel
- DEBUG
- INFO
- WARNING
- ERROR
- CRITICAL
Available LogOutput
- NONE
- CONSOLE
- FILE
- ALL
set log format
logger.set_format([
...
LogFormatBlock.XXX
...
])
Available LogFormatBlock
- NAME
- LEVEL
- DATETIME
- MESSAGE
- FILE
- LINE
- FUNCTION
Example Formats
logger.set_format([LogFormatBlock.MESSAGE])
logger.console("Hello World!")
# Output : Hello World!
logger.set_format([
"[",
LogFormatBlock.LEVEL,
"] ",
LogFormatBlock.MESSAGE]
)
logger.console("Hello World!")
# Output : [DEBUG] Hello World!
Move the log file to another location
logger.move(new_file: str, option: LogMoveOption)
# Output : Hello World!
Available LogMoveOption
- MOVE_AND_APPEND
Moves the log file to the destination
Deletes if there's already a file in the destination
Appends to the moved file
Old file is obviously deleted
- COPY_AND_APPEND
Copies the log file to the destination
Deletes if there's already a file in the destination
Appends to the moved file
Old file is obviously remains
- KEEP_AND_APPEND
Keeps the old log file
Appends if there's already a file in the destination
Creates a new file if not
- KEEP_AND_INIT
Keeps the old log file
Creates a new file in the destination
- DELETE_AND_INIT
Deletes the old log file
Creates a new file in the destination
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file uglylogger-0.8.1.tar.gz.
File metadata
- Download URL: uglylogger-0.8.1.tar.gz
- Upload date:
- Size: 14.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.0.0 CPython/3.12.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b2852a2752749fe723115c9365dbe2414a9359b2aec113c441a7f8a368f7a58c
|
|
| MD5 |
f925ce1be27368b6a2ace7747af2cb1b
|
|
| BLAKE2b-256 |
325f07d4a5d7f5da50c6f6c43e8dfc9466cb6c13e1854b15195ea2080d27926e
|
File details
Details for the file uglylogger-0.8.1-py3-none-any.whl.
File metadata
- Download URL: uglylogger-0.8.1-py3-none-any.whl
- Upload date:
- Size: 10.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.0.0 CPython/3.12.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
863c19f4aecb1215c1db4c18fc987332148c514c0e886124fd9ee985f3b90cce
|
|
| MD5 |
e3f3fc2592743fad3a04be4dd90d57ca
|
|
| BLAKE2b-256 |
8925a858f17930c657bf88f588d0072ba0dc5c9958dd804b55fe0fd85aebbd8c
|