From d1e36443375df4f405d3cdac9cd9ad459c93abe0 Mon Sep 17 00:00:00 2001 From: Lerking Date: Thu, 20 Mar 2025 13:10:26 +0100 Subject: [PATCH] Update Logging --- Logging.md | 42 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 41 insertions(+), 1 deletion(-) diff --git a/Logging.md b/Logging.md index 05838a0..9399d46 100644 --- a/Logging.md +++ b/Logging.md @@ -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 ``` \ No newline at end of file