Logowanie w ScriptCode

Dostępne metody logowania

W środowisku ScriptCode dostępny jest obiekt Logger, który umożliwia logowanie zdarzeń i danych z poziomu skryptu. Domyślnie wszystkie argumenty przekazane do metod Logger.<method>() są traktowane jako sensytywne, czyli potencjalnie zawierające dane wrażliwe.

Dostępne metody logowania:

function callService(context) {
    Logger.info('COMPLETE TASK EXECUTED [arg1={}, arg2={}]', 'arg1', 'arg2');
    Logger.debug('COMPLETE TASK EXECUTED [arg1={}, arg2={}]', 'arg1', 'arg2');
    Logger.warn('COMPLETE TASK EXECUTED [arg1={}, arg2={}]', 'arg1', 'arg2');
    Logger.error('COMPLETE TASK EXECUTED [arg1={}, arg2={}]', 'arg1', 'arg2');
    Logger.trace('COMPLETE TASK EXECUTED [arg1={}, arg2={}]', 'arg1', 'arg2');
}

Wszystkie argumenty powyższych metod są automatycznie traktowane jako dane sensytywne i w logach niesensytywnych zostaną ukryte.

Domyślnie logowane dane

Platforma Eximee domyślnie loguję oraz traktuje jako sensytywne następujące elementy środowiska ScriptCode:

  • dane wejściowe formularzy (input),

  • dane wyjściowe (output),

  • treść żądań (request) wysyłanych do usług zewnętrznych (np. przez REST API),

  • treść odpowiedzi (response) otrzymywanych z tych usług.

Oznacza to, że nawet jeśli nie zostaną one jawnie oznaczone jako sensytywne w kodzie, nie będą wypisywane w logach niesensytywnych w sposób umożliwiający odczytanie rzeczywistej zawartości. Zostaną zastąpione znacznikami _SENSITIVE_DATA_START_ ... _SENSITIVE_DATA_STOP_ lub #hashed#, w zależności od typu aplikacji i kontekstu wykonania

Logowanie sensytywne i niesensytywne

Jeśli chcemy, aby część danych została wypisana w logach niesensytywnych bez maskowania, należy użyć metody nonsensitive(), która oznacza przekazany argument jako niesensytywny.

Przykład:

W tym przykładzie:

  • arg1 zostanie zapisany w logu w formie jawnej,

  • arg2 zostanie ukryty (zastąpiony przez znacznik danych sensytywnych).


Format logów

Poniżej przedstawiono przykłady formatów logów dla różnych aplikacji platformy Eximee.

Aplikacja process-handlers


Aplikacja webforms


Dobre praktyki

  • Używaj nonsensitive() tylko wtedy, gdy masz pewność, że dane nie zawierają informacji wrażliwych.

  • Stosuj odpowiedni poziom logowania:

    • trace i debug – do analizy szczegółów działania skryptu,

    • info – dla komunikatów o przebiegu procesu,

    • warn – dla sytuacji nietypowych, ale niekrytycznych,

    • error – dla błędów wymagających interwencji.

  • Unikaj logowania całych obiektów lub dużych struktur danych.

Last updated

Was this helpful?