Update Logging

2025-03-20 13:10:26 +01:00
parent 03432049cf
commit d1e3644337

@@ -1,8 +1,10 @@
# Logging
De fleste bruger print() som debugging. Dette er dog ikke noget man gør i færdig software. Her bruger man log filer, som så hvis noget går galt kan analyseres. Og softwaren kan herefter blive opdateret.
I Python gøres dette sådan.
```python
import logging # Importér 'logging' modulet
logger = logging.getLogger(__name__) # Opretter en log, samtidig beder vi om, at module navnet skrives i loggen.
logger = logging.getLogger(__name__) # Opretter en log, samtidig beder vi om, at modul navnet skrives i loggen.
def sum(tal1: int, tal2: int) -> int:
return tal1 + tal2
@@ -25,4 +27,42 @@ Men til gengæld er der skrevet en fil - 'minlog.log'. Hvis vi åbner denne fil,
```make
INFO:__main__:Starter sum(5, 3)
INFO:__main__:Returneret sum: 8
```
Hvad man skal huske, er at denne log fil hele tiden vokser. D.v.s. at hvis vi kører programmet 2 gange til, ser logfilen således ud.
```make
INFO:__main__:Starter sum(5, 3)
INFO:__main__:Returneret sum: 8
INFO:__main__:Starter sum(5, 3)
INFO:__main__:Returneret sum: 8
INFO:__main__:Starter sum(5, 3)
INFO:__main__:Returneret sum: 8
```
Af samme årsag, er det en god ide, også at skrive dato og tid, så man efterfølgende kan se, hvornår en evt. fejl er opstået.
Dette kan gøres således.
```python
import logging # Importér 'logging' modulet
logger = logging.getLogger(__name__) # Opretter en log, samtidig beder vi om, at module navnet skrives i loggen.
def sum(tal1: int, tal2: int) -> int:
return tal1 + tal2
def main():
logging.basicConfig(format='%(asctime)s - %(levelname)s - %(message)s', datefmt='%m/%d/%Y %I:%M:%S', filename='minlog2.log', level=logging.INFO) # Vi omkonfigurerer nu vores log til også at skrive dato og klokkeslæt.
logger.info('Starter sum(5, 3)')
res = sum(5, 3)
logger.info(f'Returneret sum: {res}')
if __name__ == "__main__":
main()
```
Når vi kører dette program, får vi dette resultat.
```console
> python logging2.py
>
```
En ny logfil - minlog2.log er skrevet, med dette indold.
```make
03/20/2025 01:09:44 - INFO - Starter sum(5, 3)
03/20/2025 01:09:44 - INFO - Returneret sum: 8
```