Skip to main content

A collection of helpful logging-functionality based on the logging package

Project description

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):

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:

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:

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:

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 <module>
    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 ofSwiftGUI with little to no effort.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

swiftgui_logging-0.1.4.tar.gz (9.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

swiftgui_logging-0.1.4-py3-none-any.whl (11.3 kB view details)

Uploaded Python 3

File details

Details for the file swiftgui_logging-0.1.4.tar.gz.

File metadata

  • Download URL: swiftgui_logging-0.1.4.tar.gz
  • Upload date:
  • Size: 9.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.3.2 CPython/3.13.3 Windows/10

File hashes

Hashes for swiftgui_logging-0.1.4.tar.gz
Algorithm Hash digest
SHA256 c41c9134eb4ab3d838dbf036aed2c5a98f51a074cd7333ae3567698f247ec489
MD5 d766379550cf4dc706492d94aa22fc93
BLAKE2b-256 173ab18a57b8b70f958643eb7ea8a0e3b1387cbe506db15fad7e7a6af799aa34

See more details on using hashes here.

File details

Details for the file swiftgui_logging-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: swiftgui_logging-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 11.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.3.2 CPython/3.13.3 Windows/10

File hashes

Hashes for swiftgui_logging-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 80f7ccd1a6dff8c09eca488f454841d7e57ac3afd478cd16ad372892e803b361
MD5 3a1fbe3affb27f849afbd28403829e71
BLAKE2b-256 bde350d324c6a33e00be6b4ff1ca5361a5f2de1b5e9e5285573bc185c957ade9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page