Small Python app that copies a folder into a backup location with a date and version stamp, keeps a text log of every backup, and remembers your last-used folders. Can save either a plain copy or a zip.
You need Python 3.8 or newer. Everything the code uses is in the standard library, so nothing to pip install. On Linux you might need sudo apt install python3-tk if tkinter is not already there.
git clone https://github.com/tsarumar/File-Backup-Logger.git
cd File-Backup-Logger
python main.py
The window opens. Pick a source folder, pick a destination, tick "Zip the backup" if you want it compressed, and hit Back up now. The log fills as files copy. Hit Save prefs and next time it opens the folders are already filled in.
Main window:
After a run:
The log it keeps in backup.log:
Each class has one job.
backup.pywalks the source folder, copies files, and either writes them intobackup_YYYY-MM-DD_vN/or into a.zip.logger.pywrites START / DONE / ERROR / INFO lines tobackup.logwith timestamps and file counts.config.pyloads and saves user preferences (source, destination, zip on/off, auto interval) inconfig.json.gui.pyis the tkinter window.main.pyopens the window.
Backup folder names look like backup_2026-07-14_v1. If you run again the same day it becomes _v2, _v3, and so on, so nothing is ever overwritten.
Files that fail to copy (permission denied, file open elsewhere, disk full) are logged and skipped. One bad file cannot stop the whole run. The backup runs in a background thread so the window stays responsive and the progress bar updates as files go.
If you set the auto interval above 0, the app schedules a fresh backup every N minutes while the window is open. Setting it back to 0 stops the schedule.


