Schrijven naar standaardfout

Elixir:
Schrijven naar standaardfout

Hoe:

Om naar stderr te schrijven in Elixir, gebruik IO.warn/1 of IO.puts/2. Zo werkt het:

# Schrijven naar stderr met IO.warn
IO.warn("Er is iets misgegaan!")

# Schrijven naar stderr met IO.puts
IO.puts(:stderr, "Gedetailleerde foutinformatie.")

Voorbeelduitvoer naar stderr:

Er is iets misgegaan!
Gedetailleerde foutinformatie.

Diepere duik

Het historisch gescheiden houden van stderr van stdout stelde Unix-gebruikers in staat om foutmeldingen duidelijk te onderscheiden van reguliere uitvoer, wat vooral handig kon zijn bij het doorsturen van uitvoer naar een bestand of een ander programma.

Elixir, als een moderne taal, behoudt deze traditie. Hoewel IO.puts/1 standaard naar stdout schrijft, schakelt het doorgeven van de :stderr atoom als eerste argument de stroom om. IO.warn/1 schrijft standaard naar stderr, wat geschikt is voor waarschuwingsberichten.

Alternatieven voor foutenlogboekregistratie in Elixir kunnen het Logger-module bevatten voor een meer gestructureerde benadering. Dit kan worden geconfigureerd om logs van verschillende niveaus naar stderr te schrijven.

Intern werken de IO-functies van Elixir voor stderr en stdout samen met Erlang’s :io module, die op zijn beurt werkt met de onderliggende besturingssysteem I/O-streams.

Zie ook