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.