Beschrijving
We willen geen print() voor logging doeleinden. Logging is noodzakelijk want:
- Productie zichtbaarheid
- Debugging doeleinden
- Monitoring tijdens run
- Performance analyse
- Filteren - Scheid INFO/WARNING/ERROR berichten (kan niet met print)
Eindgebruikers hebben ook een goed gevoel bij als ze op een structurele manier kunnen zien wat de applicatie doet
Acceptatiecriteria
✅ Alle print statements vervangen door juiste log niveaus:
- print("Start predicting...") → logger.info(...)
- print(f"Error: {error}") → logger.error(...)
✅ Log bestand wordt automatisch aangemaakt in data/output/studentprognose.log
✅ Elke fout bevat context:
logger.error(f"SARIMA faalde voor {programme}, {herkomst}, jaar={jaar}, week={week}: {error}")
✅ Geen globale warning onderdrukking - warnings worden selectief gelogd
✅ Log niveaus correct gebruikt:
- DEBUG - Gedetailleerde diagnostische info
- INFO - Normale operatie mijlpalen
- WARNING - Herstelbare problemen
- ERROR - Fouten die aandacht vereisen
✅ Stack traces inbegrepen voor exceptions: exc_info=True
✅ Logs hebben timestamps en zijn parseerbaar voor geautomatiseerde analyse
Beschrijving
We willen geen print() voor logging doeleinden. Logging is noodzakelijk want:
Eindgebruikers hebben ook een goed gevoel bij als ze op een structurele manier kunnen zien wat de applicatie doet
Acceptatiecriteria
✅ Alle print statements vervangen door juiste log niveaus:
✅ Log bestand wordt automatisch aangemaakt in data/output/studentprognose.log
✅ Elke fout bevat context:
logger.error(f"SARIMA faalde voor {programme}, {herkomst}, jaar={jaar}, week={week}: {error}")
✅ Geen globale warning onderdrukking - warnings worden selectief gelogd
✅ Log niveaus correct gebruikt:
✅ Stack traces inbegrepen voor exceptions: exc_info=True
✅ Logs hebben timestamps en zijn parseerbaar voor geautomatiseerde analyse