Skip to content

Latest commit

 

History

History
100 lines (65 loc) · 2.83 KB

File metadata and controls

100 lines (65 loc) · 2.83 KB

Logboek Python library

Installatie

pip install "logboek @ https://github.com/MinBZK/logboek-dataverwerkingen-logboek/archive/main.zip#subdirectory=libs/logboek-python"

Gebruik

from logboek import init_processing_operator
from logboek.handlers import GrpcProcessingOperationHandler

# Adres van de logboekserver
logboek_endpoint = "localhost:9000"

# Gebruik gRPC om de verwerkingshandelingen naar de logboekserver te versturen
handler = GrpcProcessingOperationHandler(logboek_endpoint)

# Configureer eenmalig de operator
init_processing_operator(handler)

# Met een operator worden nieuwe verwerkingen gestart
operator = get_processing_operator()

# Start een nieuwe verwerking, als een *context manager*
with operator.start_proccessing_as_current("een-verwerking") as op:
    pass

Verwerkingenhandelingen kunnen ook gelaagd zijn. In onderstaand voorbeeld wordt automatisch de binnenste handeling onderdeel van de buitenste.

with operator.start_proccessing_as_current("buiten"):
    with operator.start_proccessing_as_current("binnen"):
        pass
    pass

Het parent_operation_id van de binnenste verwerkingenhandeling verwijst naar het operation_id van de buitenste verwerkingenhandeling.

Status

Een verwerkingshandeling heeft uitkomst welke als een status wordt opgegeven. Standaard is de status StatusCode.UNKNOWN.

from logboek import StatusCode

with operator.start_proccessing_as_current("een-verwerking") as op:
    # De verwerking is successvol
    op.set_status(StatusCode.OK)

    # De verwerking is niet geslaagd
    op.set_status(StatusCode.ERROR)

# Bij een *exception* wordt de status automatisch op StatusCode.ERROR gezet.
with operator.start_proccessing_as_current("een-verwerking"):
    raise Exception()

Attributen

Bij een verwerkingshandeling kunnen ook attributen opgegeven worden.

with operator.start_proccessing_as_current("een-verwerking") as op:
    op.set_attributes({"naam": "waarde", "dossier-nummer": "42"})

Om bij een verwerkingshandelingen een relatie te leggen naar een verwerkingensactiviteit uit een Register van de verwerkingsactiviteiten is een speciaal attribuut beschikbaar.

from logboek.attributes import Core

with operator.start_proccessing_as_current("een-verwerking") as op:
    op.set_attribute(Core.PROCESSING_ACTIVITY_ID, "<id-uit-het-rva>")

Propagation

Propagation van de verwerkingshandeling naar een extern systeem. Dit maakt gebruik van de traceparent-header.

from logboek.propagators import TraceContextPropegator
import requests

propegator = TraceContextPropegator()

with operator.start_proccessing_as_current("een-verwerking") as op:
    headers={}
    propegator.inject(headers)

    requests.get("https://example.com", headers=headers)