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 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.2.tar.gz (8.9 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.2-py3-none-any.whl (10.9 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for swiftgui_logging-0.1.2.tar.gz
Algorithm Hash digest
SHA256 3f43c9e4c556d8fbdfd9d22c2899f5d89f6419396c4697bc67a3665f1f6a6e64
MD5 84ef61897fdc37aeb3dcbd88f64fefaf
BLAKE2b-256 000375c21b20ab6b8badfc53756660ef3810e25754ea4eb7f63b08fea178e03f

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for swiftgui_logging-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 f68a212eaf786f51d810886d2d7980e7de10ba57b5dcda334f0475dfaffc7f19
MD5 e52c89d87712ed23bdd23438a1b29439
BLAKE2b-256 a40f48c57f5908db32c9acddaed7201b7d56992bfbeaecd8a05de1ca0c87c4aa

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