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
uglylogger-0.8.0.tar.gz
(15.2 kB
view details)
Built Distribution
File details
Details for the file uglylogger-0.8.0.tar.gz
.
File metadata
- Download URL: uglylogger-0.8.0.tar.gz
- Upload date:
- Size: 15.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.0.0 CPython/3.12.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e9e6965133436d3943e89aeb23beaeffb8421918752fe98d932f1c8c78d7d387 |
|
MD5 | ac59ac2d689e6b765779052f195d87db |
|
BLAKE2b-256 | 9773f790d23b35dd64aa302e04bbcdb398aeeb12070858ed7e553bc6b4d6ae14 |
Provenance
File details
Details for the file uglylogger-0.8.0-py3-none-any.whl
.
File metadata
- Download URL: uglylogger-0.8.0-py3-none-any.whl
- Upload date:
- Size: 10.1 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 | e0ce905a6f5491db4f34c7050dc19610f665f02e7addc79c943f217e1dccfce2 |
|
MD5 | f5b7efe0d0b614e78b5aec517357ab3d |
|
BLAKE2b-256 | 589b75baeaeeefbe9f1ad6ee468af7405a1770a061d8c34a91752618a198ed8f |