Elixir:
Logboekregistratie

Hoe te:

In Elixir is de primaire manier om informatie te loggen via de ingebouwde Logger module. Zo kun je het gebruiken:

defmodule MyApplication do
  require Logger

  def do_something_important(param) do
    Logger.info("Belangrijk proces gestart met param: #{param}")

    # Simuleer dat er werk wordt gedaan
    :timer.sleep(1000)

    Logger.debug("Proces voltooid.")
  rescue
    error -> Logger.error("Er is een fout opgetreden: #{inspect(error)}")
  end
end

# Om je logs te zien, roep je gewoon de functie aan:
MyApplication.do_something_important("MijnParam")

Dit eenvoudige fragment laat zien hoe je kunt loggen op verschillende niveaus (info, debug en error). Wanneer je dit uitvoert, zie je het debugbericht niet tenzij je het Logger-niveau configureert naar :debug. Standaard filtert Elixirs Logger logberichten onder :info uit.

Een voorbeelduitvoer op het :info niveau ziet er mogelijk als volgt uit:

14:32:40.123 [info]  Belangrijk proces gestart met param: MijnParam
14:32:41.126 [error] Er is een fout opgetreden: %RuntimeError{message: "runtime error"}

Diepgaand:

Elixirs Logger is een ingebouwde tool die al vanaf de vroege dagen deel uitmaakt van de taal. Het is beïnvloed door de logsystemen van andere BEAM-talen zoals Erlang. De logger biedt verschillende niveaus van loggen – :debug, :info, :warn en :error – en het is inplugbaar, waardoor verschillende backends kunnen worden aangesloten voor het afhandelen van logberichten.

Een alternatief voor de ingebouwde Logger voor meer complexe scenario’s is het gebruik van logbibliotheken zoals Logstash of Sentry voor Elixir, die extra functies kunnen bieden zoals foutopsporing en aggregatie in een meer visueel formaat. Voor lokale ontwikkeling vertrouwen Elixir-ontwikkelaars vaak op de ingebouwde Logger-functionaliteit vanwege de eenvoud en integratie met de BEAM VM.

Onder de motorkap biedt de Logger-module asynchrone en synchrone logmogelijkheden. Asynchroon loggen, dat standaard is, blokkeert de uitvoering van je applicatie niet tijdens het loggen van de berichten. Dit zorgt ervoor dat loggen de prestaties niet negatief beïnvloedt. Echter, synchroon loggen kan worden ingeschakeld voor gevallen waarbij je moet garanderen dat berichten worden gelogd in de volgorde waarin ze zijn verzonden.

De Logger-configuratie kan worden aangepast in het config/config.exs bestand van een Elixir-applicatie, waar je het logniveau, formaat, metadata en meer kunt instellen. Vergeet niet om je logniveaus en uitvoer voor verschillende omgevingen aan te passen; je wilt niet dat je productiesystemen overspoeld worden met uitgebreide debuglogs.

Zie ook: