Metadata-Version: 2.4
Name: SwiftGUI_Logging
Version: 0.1.1
Summary: A collection of helpful logging-functionality based on the logging package
License-Expression: Apache-2.0
License-File: LICENSE
Author: Eric aka CheesecakeTV
Author-email: cheesecaketv53+pypi@gmail.com
Requires-Python: >=3.10
Classifier: Programming Language :: Python :: 3
Classifier: Operating System :: OS Independent
Project-URL: Documentation, https://github.com/CheesecakeTV/SwiftGUI-Docs
Project-URL: Repository, https://github.com/CheesecakeTV/SwiftGUI-Logging
Project-URL: issues, https://github.com/CheesecakeTV/SwiftGUI/issues
Description-Content-Type: text/markdown


# 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-16-38.log`.

As you can see, the time of the crash was inserted into the 
filename, so that multiple crashlogs don't overwrite each other.

`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.



