Skip to main content
Deze documentatie beschrijft hoe u logging configureert met de AppSignal for Elixir-integratie.

Logging configureren

🔐 Stuur geen Persoonlijk Identificeerbare Informatie (PII) naar AppSignal. Filter PII (bijv. namen, e-mailadressen) uit logs en gebruik in plaats daarvan een ID, hash of gepseudonimiseerde identificator.

Voor onder HIPAA vallende entiteiten vindt u meer informatie over het ondertekenen van een Business Associate Agreement (BAA) in onze documentatie over Business Add-Ons.
U hoeft geen logbron aan te maken om logs te versturen vanuit de AppSignal for Elixir-integratie. Er wordt automatisch een “application”-logbron aangemaakt.

Logger Handler

U kunt de Erlang :logger configureren om de Appsignal.Logger.Handler-module als handler te gebruiken, door de functie Appsignal.Logger.Handler.add/2 aan te roepen in uw Application.start/2-callback:
@impl true
def start(_type, _args) do
  Appsignal.Logger.Handler.add("phoenix")
end
Het meegegeven argument is de groepsnaam die beschrijft vanwaar u logt. Deze groepsnaam kan in AppSignal worden gebruikt om uw logs te filteren.

Logger Backend

Vanaf Elixir-versie 1.15 worden Elixir logger-backends niet langer aanbevolen. Zie de sectie Logger Handler hierboven voor het aanbevolen alternatief.
In plaats van een Elixir logger-handler te gebruiken, kunt u de Elixir logger-backend configureren om de Appsignal.Logger.Backend-module als backend te gebruiken door de onderstaande code in het bestand config/runtime.exs te plaatsen:
config :logger, backends: [:console, {Appsignal.Logger.Backend, [group: "phoenix"]}]
De optie group beschrijft vanwaar u logt. Deze groepsnaam kan in AppSignal worden gebruikt om uw logs te filteren. U kunt de backend ook toevoegen met de functie add_backend/2 in uw Application.start/2-callback:
@impl true
def start(_type, _args) do
  Logger.add_backend(Appsignal.Logger.Backend, group: "phoenix")
end

Elixir Logger

Om logs naar AppSignal te sturen zonder de Elixir Logger-backend te gebruiken, kunt u een van de logging-functies van Appsignal.Logger gebruiken en deze voorzien van een groupname die definieert vanwaar u logt. Bijvoorbeeld, als wij zouden loggen vanuit een helper voor het factureren van klanten:
Appsignal.Logger.info(
  "invoice_helper",
  "Generating invoice for customer 129"
)

Gebruik

Logs versturen

Net als de Elixir/Phoenix logger-klasse kunt u de severity-niveau van uw logs definiëren met fatal, error, warning, info en debug:
Appsignal.Logger.warning(
  "app",
  "Something's gone terribly wrong here"
)
U kunt aangepaste attributen als het laatste argument doorgeven om loginformatie te versturen die kan worden gebruikt bij het filteren en opvragen van logs:
Appsignal.Logger.info(
  "invoice_helper",
  "Generated invoice for customer #{customer.id}",
  %{ customer_id: customer.id, invoice_id: invoice.id }
)
U kunt op berichtinhoud en attribuutwaarden filteren en opvragen met behulp van onze zoeksyntaxis. Eenmaal geconfigureerd, worden de gewenste attributen als log-tags naar AppSignal verstuurd en zijn ze opvraagbaar in de AppSignal logging-interface.

Formaten

Automatisch gedetecteerd formaat

Het AppSignal for Elixir-pakket detecteert het formaat van de logregel standaard automatisch als JSON, Logfmt of plaintext en parseert er attributen uit. U hoeft het logformaat niet handmatig in te stellen, tenzij het niet correct wordt gedetecteerd. Laat het ons ook weten als dit niet automatisch werkt.
# Plaintext format
Appsignal.Logger.info(
  "invoice_helper",
  "Generated invoice"
)
# Logfmt format
Appsignal.Logger.info(
  "invoice_helper",
  "Generated invoice invoice_id=A145 for customer customer_id=123"
)
# JSON format
Appsignal.Logger.info(
  "invoice_helper",
  ~s({"message": "Generated invoice for customer", "invoice_id": "A145", "customer_id": "123"})
)

Logfmt

De AppSignal Logger kan expliciet worden geconfigureerd om te verwachten dat de regel in Logfmt-formaat is en hier attributen uit te parsen. Gebruik deze optie wanneer u een oudere versie van het AppSignal for Elixir-pakket gebruikt die geen automatische formaatdetectie ondersteunt. Het Logfmt-formaat kan worden opgegeven wanneer de AppSignal-logger wordt aangeroepen door de waarde :logfmt als het laatste argument toe te voegen.
Appsignal.Logger.info(
  "invoice_helper",
  "Generated invoice invoice_id=A145 for customer customer_id=123",
  :logfmt
)

JSON

De AppSignal Logger kan expliciet worden geconfigureerd om te verwachten dat de regel in JSON-formaat is en hier attributen uit te parsen. Gebruik deze optie wanneer u een oudere versie van het AppSignal for Elixir-pakket gebruikt die geen automatische formaatdetectie ondersteunt. Het JSON-formaat kan worden opgegeven wanneer de AppSignal-logger wordt aangeroepen door de waarde :json als het laatste argument toe te voegen.
Appsignal.Logger.info(
  "invoice_helper",
  ~s({"message": "Generated invoice for customer", "invoice_id": "A145", "customer_id": "123"}),
  :json
)
Alleen primitieve niet-geneste waarden (getallen, strings, booleans en null) worden als log-attributen weergegeven. Alle andere attributen worden verwijderd.

Logs filteren

U kunt de configuratieoptie ignore_logs gebruiken om logregels op basis van hun bericht te negeren. Zie onze gids Logs negeren voor meer informatie.

Hulp nodig?

Nadat u uw Elixir-applicatie hebt geconfigureerd om logs te versturen, zouden er logs in AppSignal moeten verschijnen. Als u twijfelt over deze stap of AppSignal geen logs ontvangt, kunt u altijd contact opnemen voor hulp. Wij helpen u graag weer op weg!