https://github.com/cheesecaketv/swiftgui-logging
A collection of helpful logging-functionality based on the logging package
https://github.com/cheesecaketv/swiftgui-logging
crash crash-reporting crashlog logging logging-library python swiftgui
Last synced: 4 months ago
JSON representation
A collection of helpful logging-functionality based on the logging package
- Host: GitHub
- URL: https://github.com/cheesecaketv/swiftgui-logging
- Owner: CheesecakeTV
- License: apache-2.0
- Created: 2026-02-23T16:40:20.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2026-02-26T11:32:48.000Z (4 months ago)
- Last Synced: 2026-02-28T02:26:21.492Z (4 months ago)
- Topics: crash, crash-reporting, crashlog, logging, logging-library, python, swiftgui
- Language: Python
- Homepage:
- Size: 22.5 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# SwiftGUI-Logging: Motivation
A small package ment to extend logging to better fit actual applications.
Before getting into the logging-package, I usually implemented
something like this (but more complicated):
```py
def main():
...
if __name__ == "__main__":
try:
main() # Run the main program
except Exception as ex: # An exception occured
with open("Crashlog.txt", "w") as f: # Save exception to file
f.write(str(ex))
```
If `main()` causes an exception, the file `Crashlog.txt` is created
containing information about the exception.
That means, only "the interesting logs" take up storage space.
Unfortunately, you can't implement such a functionality using the
logging-package.
Until now.
SwiftGUI-Logging provides a very easy way to set up crashlogs that
are fully compatible with the logging-package.
# Basic usage
## Installation
Install the package by running this on your terminal:
```bash
pip install SwiftGUI_Logging
```
## Crashlogging to a file
Simply call `SwiftGUI_Logging.Configs.exceptions_to_file(filepath)`
to set up the crashlogger.
That's all.
Example:
```py
import time
import SwiftGUI_Logging as sgl
import logging
def main():
for i in range(10):
logging.debug(f"Test {i}")
print(i)
time.sleep(0.25)
logging.info("Crashing the program now")
1 / 0 # Cause a ZeroDivisionError, which crashes the program
if __name__ == '__main__':
sgl.Configs.exceptions_to_file("Crashlogs/Crash.log") # Set up the crash-log
main() # Execute program
```
You'll find that the directory `Crashlogs` was created.
After the program executes, the directory contains a file like
`Crash_2026-02-24_16-33-52.log`.
As you can see, the time of the crash was inserted into the
filename, so that multiple crashlogs don't overwrite each other.
The file contains the most recent log-entries (from `logging.debug` and `logging.info`)
and the exception with full traceback:
```log
2026-02-24 16:33:49,940 - root - DEBUG - Test 0
2026-02-24 16:33:50,197 - root - DEBUG - Test 1
2026-02-24 16:33:50,451 - root - DEBUG - Test 2
2026-02-24 16:33:50,704 - root - DEBUG - Test 3
2026-02-24 16:33:50,958 - root - DEBUG - Test 4
2026-02-24 16:33:51,214 - root - DEBUG - Test 5
2026-02-24 16:33:51,469 - root - DEBUG - Test 6
2026-02-24 16:33:51,723 - root - DEBUG - Test 7
2026-02-24 16:33:51,979 - root - DEBUG - Test 8
2026-02-24 16:33:52,235 - root - DEBUG - Test 9
2026-02-24 16:33:52,490 - root - INFO - Crashing the program now
2026-02-24 16:33:52,490 - root - ERROR - Traceback (most recent call last):
File "C:\Users\chees\PycharmProjects\SwiftGUI-Logging\tests\test.py", line 17, in
main() # Execute program
File "C:\Users\chees\PycharmProjects\SwiftGUI-Logging\tests\test.py", line 13, in main
1 / 0 # Cause a ZeroDivisionError, which crashes the program
ZeroDivisionError: division by zero
```
`sgl.Configs.exceptions_to_file` can do a bit more, but for most programs,
the default configuration is fine.
## Other functionality
`SwiftGUI_Logging` provides some other functionality, but these
aren't nearly as important as the `exceptions_to_file`-function.
A detailed documentation will follow.
# SwiftGUI
This package was written as an addition to
my Python GUI-package `SwiftGUI`:
https://github.com/CheesecakeTV/SwiftGUI
Since `SwiftGUI_Logging` itself has nothing to to with GUIs,
it is its own package.
Consider checking out `SwiftGUI` if you want to easily create
user-interfaces for python.
If you already know the package `PySimpleGUI`, you'll learn the
basics of`SwiftGUI` with little to no effort.