Elixir:
Lokitus

Miten:

Elixirissä perustavanlaatuinen tapa lokitietojen kirjaamiseen on sisäänrakennetun Logger-moduulin kautta. Tässä on ohjeet sen käyttöön:

defmodule MyApplication do
  require Logger

  def do_something_important(param) do
    Logger.info("Aloitetaan tärkeä prosessi parametrilla: #{param}")

    # Simuloi työn tekemistä
    :timer.sleep(1000)

    Logger.debug("Prosessi suoritettu.")
  rescue
    error -> Logger.error("Tapahtui virhe: #{inspect(error)}")
  end
end

# Nähdäksesi lokitiedot, sinun tulee vain kutsua funktiota:
MyApplication.do_something_important("MyParam")

Tämä yksinkertainen koodinpätkä näyttää, miten logataan eri tasolla (info, debug ja error). Kun suoritat tämän, et näe debug-viestiä, ellet konfiguroi Logger-tasoa :debug-arvoon. Oletuksena Elixiriin sisäänrakennettu Logger suodattaa pois lokiviestit, jotka ovat alempia kuin :info.

Esimerkkitulostus :info-tasolla voisi näyttää tältä:

14:32:40.123 [info]  Aloitetaan tärkeä prosessi parametrilla: MyParam
14:32:41.126 [error] Tapahtui virhe: %RuntimeError{message: "suoritusaikainen virhe"}

Syväsukellus:

Elixirin Logger on sisäänrakennettu työkalu, joka on ollut osa kieltä sen alkuaikoina. Se on saanut vaikutteita muiden BEAM-kielten, kuten Erlangin, lokitusjärjestelmistä. Logger tarjoaa eri lokitustasoja – :debug, :info, :warn ja :error – ja se on laajennettavissa, mikä mahdollistaa erilaisten taustajärjestelmien liittämisen lokiviestien käsittelyyn.

Yksi vaihtoehto sisäänrakennetulle Loggerille monimutkaisemmissa tilanteissa on lokituskirjastojen, kuten Logstash tai Sentry Elixirille, käyttö. Nämä voivat tarjota lisäominaisuuksia, kuten virheiden seurannan ja kokoamisen visuaalisessa muodossa. Paikallisessa kehitystyössä Elixirin kehittäjät luottavat usein Loggerin sisäänrakennettuun toiminnallisuuteen sen yksinkertaisuuden ja BEAM-VM:n integraation vuoksi.

Sisäisesti Logger-moduuli tarjoaa asynkronista ja synkronista lokitusta. Asynkroninen lokitus, joka on oletusarvo, ei estä sovelluksesi suorittamista viestien lokitessa. Tämä varmistaa, että lokitus ei vaikuta negatiivisesti suorituskykyyn. Synkroninen lokitus voidaan kuitenkin ottaa käyttöön tapauksissa, joissa on taattava viestien logittaminen siinä järjestyksessä, kun ne on lähetetty.

Loggerin konfiguraatiota voidaan säätää Elixir-sovelluksen config/config.exs-tiedostossa, jossa voit asettaa lokitustason, muodon, metatiedot ja muuta. Muista aina säätää lokitustasosi ja -tulosteesi eri ympäristöihin; et halua, että tuotantojärjestelmäsi tulvitaan pitkäpiirteisillä debug-lokeilla.

Katso myös: