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:
Logger.info(
'COMPLETE TASK EXECUTED [arg1={}, arg2={}]',
nonsensitive('arg1 nonsensitive test'),
'arg2'
);W tym przykładzie:
arg1zostanie zapisany w logu w formie jawnej,arg2zostanie 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
process-handlers2023-07-20 11:52:07.130 CEST [pb=csadas21312das][pi=149e3ba0-26e3-11ee-8889-927e393a9856][pd=script_code_handler_test_process][sn=process-handler-complete-task][pt=eximeeScriptCodeTask][sci=a919bbb6-1dea-4044-a5ca-ee5f2f0c55ad][TopicSubscriptionManager] INFO c.c.r.e.l.JavascriptLibraryLoader - Loading javascript libraries from directory=_SENSITIVE_DATA_START_._SENSITIVE_DATA_STOP_
2023-07-20 11:52:07.162 CEST [pb=csadas21312das][pi=149e3ba0-26e3-11ee-8889-927e393a9856][pd=script_code_handler_test_process][sn=process-handler-complete-task][pt=eximeeScriptCodeTask][sci=a919bbb6-1dea-4044-a5ca-ee5f2f0c55ad][TopicSubscriptionManager] INFO c.c.e.s.logging.JavaScriptLoggerImpl - COMPLETE TASK EXECUTED [arg1=arg1 nonsensitive test, arg2=_SENSITIVE_DATA_START_arg2_SENSITIVE_DATA_STOP_]
2023-07-20 11:52:07.163 CEST [pb=csadas21312das][pi=149e3ba0-26e3-11ee-8889-927e393a9856][pd=script_code_handler_test_process][sn=process-handler-complete-task][pt=eximeeScriptCodeTask][sci=a919bbb6-1dea-4044-a5ca-ee5f2f0c55ad][TopicSubscriptionManager] WARN c.c.e.s.logging.JavaScriptLoggerImpl - COMPLETE TASK EXECUTED [arg1=_SENSITIVE_DATA_START_arg1_SENSITIVE_DATA_STOP_, arg2=_SENSITIVE_DATA_START_arg2_SENSITIVE_DATA_STOP_]
2023-07-20 11:52:07.163 CEST [pb=csadas21312das][pi=149e3ba0-26e3-11ee-8889-927e393a9856][pd=script_code_handler_test_process][sn=process-handler-complete-task][pt=eximeeScriptCodeTask][sci=a919bbb6-1dea-4044-a5ca-ee5f2f0c55ad][TopicSubscriptionManager] ERROR c.c.e.s.logging.JavaScriptLoggerImpl - COMPLETE TASK EXECUTED [arg1=_SENSITIVE_DATA_START_arg1_SENSITIVE_DATA_STOP_, arg2=_SENSITIVE_DATA_START_arg2_SENSITIVE_DATA_STOP_] Aplikacja webforms
webforms2023-07-20 16:15:27,489 CEST [MK_1611202307201615273] [] [http-nio-8082-exec-36] INFO c.c.e.s.l.l.JavaScriptLoggerImpl - COMPLETE TASK EXECUTED [arg1=arg1 nonsensitive test, arg2=#hashed#]
2023-07-20 16:15:27,490 CEST [MK_1611202307201615273] [] [http-nio-8082-exec-36] WARN c.c.e.s.l.l.JavaScriptLoggerImpl - COMPLETE TASK EXECUTED [arg1=#hashed#, arg2=#hashed#]
2023-07-20 16:15:27,490 CEST [MK_1611202307201615273] [] [http-nio-8082-exec-36] ERROR c.c.e.s.l.l.JavaScriptLoggerImpl - COMPLETE TASK EXECUTED [arg1=#hashed#, arg2=#hashed#] Dobre praktyki
Używaj
nonsensitive()tylko wtedy, gdy masz pewność, że dane nie zawierają informacji wrażliwych.Stosuj odpowiedni poziom logowania:
traceidebug– 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?
