Das kannst du recht einfach mit dem Logging Modul erreichen.
import logging
logging.basicConfig(
filename="app.log",
level=logging.INFO,
format="%(asctime)s %(levelname)s %(message)s",
encoding="utf-8",
)
logging.info("Programm gestartet")
logging.warning("Das ist eine Warnung")
logging.error("Ein Fehler ist passiert")