Wyświetlasz dokumentację Apigee Edge.
Zapoznaj się z dokumentacją Apigee X. info
Co
Jednym z najlepszych sposobów na wykrywanie problemów w środowisku wykonawczym interfejsu API jest rejestrowanie komunikatów. Możesz dołączyć do interfejsu API zasadę MessageLogging i skonfigurować ją tak, aby rejestrowała niestandardowe wiadomości na dysku lokalnym (tylko Edge dla chmury prywatnej) lub w syslogu.
Przykłady
Syslog
<MessageLogging name="LogToSyslog">
<Syslog>
<Message>[3f509b58 tag="{organization.name}.{apiproxy.name}.{environment.name}"] Weather request for WOEID {request.queryparam.w}.</Message>
<Host>logs-01.loggly.com</Host>
<Port>514</Port>
<Protocol>TCP</Protocol>
<FormatMessage>true</FormatMessage>
<DateFormat>yyyy-MM-dd'T'HH:mm:ss.SSSZ</DateFormat>
</Syslog>
<logLevel>ALERT</logLevel>
</MessageLogging>Typ zasad MessageLogging jest często używany do rejestrowania na koncie syslog. Gdy serwer proxy interfejsu API jest skonfigurowany do obsługi syslogu, przekazuje komunikaty dziennika z Apigee Edge na zdalny serwer syslog. Musisz mieć już dostępny serwer syslog. W przeciwnym razie możesz skorzystać z publicznych usług zarządzania logami, takich jak Splunk, Sumo Logic i Loggly. Więcej informacji znajdziesz w artykule Konfigurowanie usług zarządzania logami innych firm.
Załóżmy na przykład, że chcesz rejestrować informacje o każdej wiadomości z żądaniem, którą Twój interfejs API otrzymuje z aplikacji konsumenckich. Wartość 3f509b58 reprezentuje wartość klucza
specyficzną dla usługi Loggly. Jeśli masz konto Loggly, zastąp klucz Loggly. Wygenerowany komunikat dziennika będzie zawierać 4 wartości: nazwę organizacji, serwera proxy API i środowiska powiązanych z transakcją oraz wartość parametru zapytania w wiadomości z żądaniem.
Jeśli masz wdrożenie Edge for Private Cloud, możesz też zapisywać komunikaty dziennika w pliku.
Syslog przez TLS/SSL
<MessageLogging name="LogToSyslog">
<Syslog>
<Message>[3f509b58 tag="{organization.name}.{apiproxy.name}.{environment.name}"] Weather request for WOEID {request.queryparam.w}.</Message>
<Host>logs-01.loggly.com</Host>
<Port>6514</Port>
<Protocol>TCP</Protocol>
<FormatMessage>true</FormatMessage>
<SSLInfo>
<Enabled>true</Enabled>
</SSLInfo>
<DateFormat>yyMMdd-HH:mm:ss.SSS</DateFormat>
</Syslog>
<logLevel>WARN</logLevel>
</MessageLogging>Możesz wysyłać wiadomości do zewnętrznych dostawców rejestrowania wiadomości za pomocą protokołu TLS/SSL, dodając blok <SSLInfo>.
Rotacja plików: rozmiar
<MessageLogging name="LogPolicy">
<File>
<Message>This is a test message. Message id : {request.header.messageid}</Message>
<FileName>test.log</FileName>
<FileRotationOptions rotateFileOnStartup="true">
<FileRotationType>SIZE</FileRotationType>
<MaxFileSizeInMB>10</MaxFileSizeInMB>
<MaxFilesToRetain>10</MaxFilesToRetain>
</FileRotationOptions>
</File>
<logLevel>ERROR</logLevel>
</MessageLogging>Rotacja plików na podstawie ich rozmiaru.
Rotacja plików: czas
<MessageLogging name="LogPolicy">
<File>
<Message>This is a test message. Message id : {request.header.messageid}</Message>
<FileName>test.log</FileName>
<FileRotationOptions rotateFileOnStartup="true">
<FileRotationType>TIME</FileRotationType>
<RotationFrequency unit="minute">10</RotationFrequency>
<MaxFilesToRetain>10</MaxFilesToRetain>
</FileRotationOptions>
</File>
<logLevel>ERROR</logLevel>
</MessageLogging>Rotacja plików na podstawie czasu.
Rotacja plików: czas i rozmiar
<MessageLogging name="LogPolicy">
<File>
<Message>This is a test message. Message id : {request.header.messageid}</Message>
<FileName>test.log</FileName>
<FileRotationOptions rotateFileOnStartup="true">
<FileRotationType>TIME_SIZE</FileRotationType>
<MaxFileSizeInMB>10</MaxFileSizeInMB>
<MaxFilesToRetain>10</MaxFilesToRetain>
<RotationFrequency unit="minute">10</RotationFrequency>
</FileRotationOptions>
</File>
<logLevel>ERROR</logLevel>
</MessageLogging>Rotacja plików na podstawie czasu i rozmiaru.
Możliwość strumieniowania
<MessageLogging name="LogPolicy"> <File> .... .... </File> <BufferMessage>true</BufferMessage> </MessageLogging>
Logowanie wiadomości z włączonym strumieniowaniem
.Odwołanie do elementu
Aby skonfigurować typ zasady MessageLogging, użyj tych elementów:
| Nazwa pola | Opis pola | |
|---|---|---|
|
Lokalizacja pliku lokalnego. (Logowanie do plików jest obsługiwane tylko w przypadku wdrożeń Edge for Private Cloud). Informacje o tym, gdzie są przechowywane pliki, znajdziesz w artykule Lokalizacja plików dziennika w Edge for Private Cloud. |
Message |
Utwórz wiadomość, która ma być wysłana do pliku dziennika, łącząc tekst ze zmiennymi, aby przechwycić potrzebne informacje. Zobacz przykłady. |
FileName |
Nazwa podstawowa pliku dziennika.
Nie podawaj ścieżki pliku. Na przykład ten element FileName określa ścieżkę pliku i jest nieprawidłowy:
<FileName>/opt/apigee/var/log/messages/mylog.log</FileName> Ten kod określa tylko nazwę pliku i jest prawidłowy: <FileName>mylog.log</FileName> Informacje o tym, gdzie jest przechowywany plik, znajdziesz w artykule Lokalizacja pliku dziennika w Edge for Private Cloud. |
|
FileRotationOptions |
||
rotateFileOnStartup |
Atrybut. Prawidłowe wartości: Jeśli ma wartość Prawda, plik logu jest obracany przy każdym ponownym uruchomieniu silnika przesyłania wiadomości. |
|
FileRotationType |
Określa zasadę rotacji (size lub time) pliku dziennika. |
|
MaxFileSizeInMB |
(Po wybraniu size jako typu rotacji) Określa rozmiar pliku dziennika, który powoduje przeniesienie wiadomości dziennika na serwerze do oddzielnego pliku. Gdy plik dziennika osiągnie określony rozmiar, serwer zmieni nazwę bieżącego pliku dziennika. |
|
RotationFrequency |
(Po wybraniu time jako typu rotacji) Określa czas w minutach, po którym serwer przenosi komunikaty dziennika do osobnego pliku. Po upływie określonego interwału bieżący plik dziennika jest zmieniany. |
|
MaxFilesToRetain |
Określa maksymalną liczbę plików, które mają być przechowywane w kontekście ustawień rotacji. Wartością domyślną jest 8. Jeśli określisz wartość zero (0), pliki logu będą przechowywane bezterminowo, ale z uwzględnieniem ustawień rotacji plików. Żaden z plików nie zostanie usunięty ani zmieniony. Aby uniknąć w przyszłości błędów pełnego dysku, ustaw tę wartość na liczbę większą od zera lub wdróż regularny, zautomatyzowany system usuwania lub archiwizowania starszych zachowanych plików dziennika. |
|
BufferMessage |
Jeśli transmisja strumieniowa HTTP jest włączona w przypadku serwera proxy, wiadomości żądania/odpowiedzi nie są buforowane. Jeśli chcesz rejestrować treści, które wymagają przeanalizowania wiadomości przepływu, ustaw wartość BufferMessage na true. Przykład znajdziesz na karcie „Stream-enabled” (Włączone przesyłanie strumieniowe). Domyślnie: false |
|
|
Miejsce docelowe syslog. Aby wysyłać syslog do Splunk, Sumo Logic lub Loggly, zapoznaj się z artykułem Konfigurowanie usług zarządzania logami innych firm. |
Message |
Utwórz wiadomość, która ma być wysłana do dziennika systemowego. Połącz tekst ze zmiennymi, aby przechwycić potrzebne informacje. Zobacz przykłady. Uwaga: zmienne odpowiedzi nie będą dostępne w PostClientFlow po wystąpieniu błędu. Używaj zmiennych wiadomości, aby rejestrować informacje o odpowiedziach w przypadku błędów i sukcesów. Zobacz też Zastosowanie. |
Host |
Nazwa hosta lub adres IP serwera, na który ma być wysyłany syslog. Jeśli nie podasz tego elementu, domyślnie zostanie użyty adres localhost. | |
Port |
Port, na którym działa syslog. Jeśli nie podasz tego elementu, domyślną wartością będzie 514. | |
Protocol |
TCP lub UDP (wartość domyślna). Protokół UDP jest wydajniejszy, ale protokół TCP gwarantuje dostarczenie logów wiadomości na serwer syslog. W przypadku wysyłania wiadomości syslog przez TLS/SSL obsługiwany jest tylko protokół TCP. | |
FormatMessage |
Opcjonalny, ale Ten element umożliwia kontrolowanie formatu treści wygenerowanych przez Apigee, które są dodawane na początku wiadomości. Jeśli ma wartość „true”, przed wiadomością syslog jest dodawana stała liczba znaków, co umożliwia odfiltrowanie tych informacji z wiadomości. Oto przykład formatu stałego:
Informacje wygenerowane przez Apigee obejmują:
Jeśli ma wartość Fałsz (domyślnie), do wiadomości nie są dodawane te stałe znaki. |
|
PayloadOnly |
Ten element ustawia format generowanych przez Apigee wiadomości tak, aby zawierały tylko treść wiadomości syslog, bez znaków dodanych na początku określonych przez element FormatMessage. Jeśli nie uwzględnisz tego elementu lub pozostawisz go pustego, domyślna wartość to Zobacz FormatMessage. |
|
DateFormat |
Opcjonalnie: Ciąg szablonu formatowania, który będzie używany do formatowania sygnatury czasowej każdej wiadomości dziennika.
Domyślnie Apigee używa |
|
SSLInfo |
Umożliwia rejestrowanie wiadomości za pomocą protokołu SSL/TLS. Użyj z elementem podrzędnym Jeśli nie uwzględnisz tego elementu lub pozostawisz go pustego, domyślną wartością będzie „false” (brak TLS/SSL). <SSLInfo>
<Enabled>true</Enabled>
</SSLInfo>Tag <SSLInfo> możesz skonfigurować tak samo jak w przypadku TargetEndpoint, w tym włączyć dwukierunkowy protokół TLS/SSL, zgodnie z opisem w dokumentacji konfiguracji proxy API. Obsługiwany jest tylko protokół TCP. |
|
logLevel |
Opcjonalnie: Prawidłowe wartości: Ustaw konkretny poziom informacji, które mają być uwzględniane w dzienniku wiadomości. Jeśli używasz elementu |
|
Schematy
Zastosowanie
Gdy dołączasz zasadę MessageLogging do przepływu proxy interfejsu API, rozważ umieszczenie jej w odpowiedzi ProxyEndpoint w specjalnym przepływie o nazwie PostClientFlow. PostClientFlow jest wykonywany po wysłaniu odpowiedzi do klienta, który wysłał żądanie. Dzięki temu wszystkie dane są dostępne do rejestrowania. Więcej informacji o używaniu PostClientFlow znajdziesz w dokumentacji konfiguracji proxy interfejsu API.
PostClientFlow jest wyjątkowy z 2 powodów:
- Została ona wykonana tylko w ramach przepływu odpowiedzi.
- Jest to jedyny przepływ wykonywany po przejściu serwera proxy w stan błędu.
Jest on wykonywany niezależnie od tego, czy serwer proxy działa prawidłowo, czy nie. Dlatego możesz umieścić zasady MessageLogging w PostClientFlow i mieć pewność, że zawsze będą wykonywane.
Obraz śledzenia poniżej pokazuje zasadę MessageLogging wykonywaną w ramach PostClientFlow po wykonaniu zasady DefaultFaultRule:

W tym przykładzie zasada Verify API Key spowodowała błąd z powodu nieprawidłowego klucza.
Poniżej znajduje się definicja ProxyEndpoint, która zawiera PostClientFlow:
<ProxyEndpoint name="default">
...
<PostClientFlow>
<Response>
<Step>
<Name>Message-Logging-1</Name>
</Step>
</Response>
</PostClientFlow>
...
</ProxyEndpoint>Edge rejestruje komunikaty jako zwykły tekst. Możesz skonfigurować rejestrowanie tak, aby obejmowało zmienne, takie jak data i godzina otrzymania żądania lub odpowiedzi, tożsamość użytkownika w żądaniu, źródłowy adres IP, z którego zostało wysłane żądanie, i tak dalej. Usługa Edge Logs wysyła wiadomości asynchronicznie, co oznacza, że do interfejsu API nie są wprowadzane żadne opóźnienia, które mogłyby być spowodowane blokowaniem wywołań.
Zasady MessageLogging zapisują zalogowane wiadomości w pamięci w buforze. Rejestrator wiadomości odczytuje wiadomości z bufora, a następnie zapisuje je w skonfigurowanym miejscu docelowym. Każde miejsce docelowe ma własny bufor.
Użytkownicy mogą napotykać opóźnienia w odbieraniu wiadomości z logami wysyłanych do nowego punktu końcowego syslog. Wynika to z zamierzonego działania „zimnego startu” w zasadach. Gdy skonfigurowane zostanie nowe miejsce docelowe logowania, oprócz istniejących miejsc docelowych logowania procesor wiadomości może najpierw umieścić w pamięci 1000 wiadomości dziennika w kolejce przed ich wysłaniem. Może to spowodować początkowe opóźnienie w środowiskach o niskim natężeniu ruchu. Początkowe opóźnienie jest niewidoczne w przypadku typowych zadań produkcyjnych, ponieważ wiadomości powinny gromadzić się szybko. Gdy osiągniesz próg, wiadomości dziennika będą dostarczane zgodnie z oczekiwaniami. Płynne ponowne uruchomienie procesora wiadomości może również spowodować dostarczenie wiadomości w kolejce, gdy będą z niej usuwane.
Jeśli szybkość zapisu do bufora wzrośnie powyżej szybkości odczytu, bufor przepełni się i logowanie nie powiedzie się. W takim przypadku w pliku dziennika może pojawić się komunikat o treści:
Log message size exceeded. Increase the max message size setting
Jeśli ten problem występuje w Edge for Private Cloud w wersji 4.15.07 lub starszej, znajdź plik message-logging.properties i skorzystaj z tego rozwiązania:
Zwiększ wartość właściwości max.log.message.size.in.kb (wartość domyślna = 128 KB) w pliku message-logging.properties.
W przypadku Edge for Private Cloud w wersji 4.16.01 i nowszych ustaw właściwość conf/message-logging.properties+max.
log.message.size.in.kb w pliku /opt/apigee/customer/application/message-processor.properties i ponownie uruchom procesor wiadomości. Pamiętaj, że ta właściwość jest domyślnie zakomentowana.
Uwaga: zmienne komunikatu odpowiedzi w Edge nie są dostępne w przypadku przepływu błędów. Te zmienne nie są też dostępne w PostClientFlow, jeśli poprzednim przepływem był przepływ błędów. Jeśli chcesz rejestrować informacje o odpowiedziach z funkcji PostClientFlow, użyj obiektu message. Możesz użyć tego obiektu, aby uzyskać dostęp do nagłówków i innych informacji z odpowiedzi, niezależnie od tego, czy wystąpił błąd. Więcej informacji i przykład znajdziesz w sekcji Zmienne wiadomości.
Kontrolowanie sygnatury czasowej wiadomości dziennika w Edge for Private Cloud
Domyślnie sygnatura czasowa we wszystkich wiadomościach dziennika ma format:
yyyy-MM-dd'T'HH:mm:ss.SSSZ
Systemową wartość domyślną można zastąpić w przypadku miejsc docelowych syslog za pomocą elementu DateFormat. Działanie tego szablonu opisano w dokumentacji klasy SimpleDateFormat w języku Java. Zgodnie z tą definicją yyyy zostanie zastąpiony 4-cyfrowym rokiem, MM – 2-cyfrowym numerem miesiąca itd.
Powyższy format może dać ciąg znaków w tej postaci:
2022-09-28T22:38:11.721+0000
Format ten możesz kontrolować za pomocą właściwości conf_system_apigee.syslogger.dateFormat w procesorze wiadomości Edge. Na przykład zmiana formatu wiadomości na:
yy/MM/dd'T'HH:mm:ss.SSSZ
..zastępując kreski ukośnikami i skracając rok do 2 cyfr, rejestruje znacznik czasu w formacie:
22/09/28T22:38:11.721+0000
Aby zmienić format:
- Otwórz plik message-processor.properties w edytorze. Jeśli plik nie istnieje, utwórz go:
> vi /opt/apigee/customer/application/message-processor.properties - Ustaw właściwości w odpowiedni sposób:
conf_system_apigee.syslogger.dateFormat=yy/MM/dd'T'HH:mm:ss.SSSZ - Zapisz zmiany.
- Sprawdź, czy plik właściwości należy do użytkownika „apigee”:
> chown apigee:apigee /opt/apigee/customer/application/message-processor.properties - Uruchom ponownie procesor wiadomości Edge:
> /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
Lokalizacja pliku logu w Edge for Private Cloud
Edge for Private Cloud w wersji 4.16.01 i nowszej
Domyślnie logi wiadomości w chmurze prywatnej znajdują się w tym katalogu na węzłach Message Processor:
/opt/apigee/var/log/edge-message-processor/messagelogging/org_name/environment/api_proxy_name/revision/logging_policy_name/
Domyślną lokalizację dziennika możesz zmienić, modyfikując właściwości w pliku message-logging.properties na procesorach wiadomości:
- bin_setenv_data_dir -
Ustawia ścieżkę główną do przechowywania plików dziennika. Na przykład:
bin_setenv_data_dir=/opt/apigee/var/log - conf_message-logging_log.root.dir – jeśli ustawisz ścieżkę względną, np.
conf/message-logging.properties+log.root.dir=custom/folder/, the path is appended to the bin_setenv_data_dir location.
jeśli ustawisz ścieżkę bezwzględną, np.conf/message-logging.properties+log.root.dir=/opt/apigee/var/log/messages, logi wiadomości będą przechowywane w/opt/apigee/var/log/messages/messagelog/. Ścieżka bezwzględna ma pierwszeństwo przedbin_setenv_data_dir.
Pamiętaj, że musisz odwołać się do właściwości jako conf/message-logging.properties+log.root.dir, ponieważ jest ona domyślnie zakomentowana. Więcej informacji znajdziesz w sekcji Ustawianie tokena, który jest obecnie zakomentowany.
Jeśli chcesz przechowywać pliki dziennika w strukturze płaskiej, tak aby wszystkie pliki dziennika były umieszczane w tym samym katalogu, w pliku message-logging.properties ustaw wartość conf/message-logging.properties+enable.flat.directory.structure na true. Wiadomości są przechowywane w katalogu określonym przez powyższe właściwości, a nazwy plików mają postać {org}_{environment}_{api_proxy_name}_{revision}_{logging_policy_name}_{filename}.
Aby ustawić te właściwości:
- Otwórz plik message-processor.properties w edytorze. Jeśli plik nie istnieje, utwórz go:
> vi /opt/apigee/customer/application/message-processor.properties - Ustaw właściwości w odpowiedni sposób:
conf/message-logging.properties+log.root.dir=/opt/apigee/var/log/messages - Zapisz zmiany.
- Sprawdź, czy plik właściwości należy do użytkownika „apigee”:
> chown apigee:apigee /opt/apigee/customer/application/message-processor.properties - Uruchom ponownie komponent Edge:
> /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
Edge for Private Cloud 4.15.07 i starsze
Domyślnie dzienniki wiadomości znajdują się w tych miejscach na procesorach wiadomości:
/opt/apigee4/var/log/apigee/message-processor/messagelog/{org}/{environment}/{api_proxy_name}/{revision}/{logging_policy_name}/
Domyślną lokalizację dziennika możesz zmienić, modyfikując te właściwości w pliku message-logging.properties na procesorach wiadomości:
- data.dir – ustawia ścieżkę główną do przechowywania plików dziennika. Na przykład data.dir=/opt/apigee4/var/log
- log.root.dir – jeśli ustawisz ścieżkę względną, np. log.root.dir=custom/folder/, ścieżka zostanie dołączona do lokalizacji data.dir.
Na przykład połączenie tych 2 właściwości spowoduje ustawienie katalogu logowania na /opt/apigee4/var/log/custom/folder/messagelog/ (zauważ, że /messagelog jest dodawany automatycznie).
Jeśli ustawisz ścieżkę bezwzględną, np. log.root.dir=/opt/apigee4/var/log/messages, dzienniki wiadomości będą przechowywane w katalogu /opt/apigee4/var/log/messages/messagelog/. Ścieżka bezwzględna w parametrze log.root.dir ma pierwszeństwo przed parametrem data.dir.
Jeśli chcesz przechowywać pliki dziennika w strukturze płaskiej, tak aby wszystkie pliki dziennika były umieszczane w tym samym katalogu, ustaw w pliku message-logging.properties na procesorach wiadomości wartość enable.flat.directory.structure na true. Wiadomości są przechowywane w katalogu określonym przez powyższe właściwości, a nazwy plików mają postać {org}_{environment}_{api_proxy_name}_{revision}_{logging_policy_name}_{filename}.
Wartości domyślne zmiennych w szablonie wiadomości
Wartości domyślne można określić oddzielnie dla każdej zmiennej w szablonie wiadomości. Jeśli na przykład nie można rozpoznać zmiennej request.header.id, jej wartość zostanie zastąpiona wartością unknown.
<Message>This is a test message. id = {request.header.id:unknown}</Message>Możesz określić wspólną wartość domyślną dla wszystkich nierozwiązanych zmiennych, ustawiając atrybut defaultVariableValue w elemencie Message:
<Message defaultVariableValue="unknown">This is a test message. id = {request.header.id}</Message>Konfigurowanie usług zarządzania logami innych firm
Zasady MessageLogging umożliwiają wysyłanie wiadomości syslog do zewnętrznych usług zarządzania logami, takich jak Splunk, Sumo Logic i Loggly. Jeśli chcesz wysyłać syslog do jednej z tych usług, zapoznaj się z dokumentacją tej usługi, aby skonfigurować jej hosta, port i protokół, a następnie odpowiednio ustaw element Syslog w tych zasadach.
Informacje o konfiguracji zarządzania logami innych firm znajdziesz w tych dokumentach:
- Splunk (wybierz wersję produktu)
Zobacz też ten post na forum Apigee Community: Log messages into Splunk (Logowanie wiadomości w Splunk) -
Sumo
Logic
- Zobacz też ten post na forum społeczności Apigee: Setting up logging with Sumo Logic, which host should I use?
- Pełny przykład korzystania z usługi Sumo Logic jako usługi rejestrowania znajdziesz w tym poście na forum społeczności Apigee. Rozwiązanie korzysta z jednej zasady JavaScriptu do wysyłania żądań HTTP POST do kolektora źródła HTTP Sumo Logic: Logowanie do Sumo Logic za pomocą JavaScriptu i HTTP
- Loggly
W przypadku korzystania z usługi Loggly element<FormatMessage>true</FormatMessage>jest wymagany w zasadach jako element podrzędny elementu<Syslog>.
Więcej informacji o rejestrowaniu wiadomości w Loggly znajdziesz w tym poście na forum społeczności Apigee:Rejestrowanie wiadomości w Loggly
Odniesienie do błędu
W tej sekcji opisano kody błędów i komunikaty o błędach, które są zwracane, oraz zmienne błędów ustawiane przez Edge, gdy ta zasada wyzwala błąd. Warto o tym wiedzieć, jeśli rozwijasz reguły błędów, aby obsługi błędów. Więcej informacji znajdziesz w artykule Co musisz wiedzieć o błędach związanych z zasadami i postępowaniu z błędami
Błędy w czasie wykonywania
Te błędy mogą wystąpić podczas wykonywania zasady.
| Kod błędu | Stan HTTP | Przyczyna |
|---|---|---|
steps.messagelogging.StepDefinitionExecutionFailed |
500 | Zobacz ciąg błędu. |
Błędy wdrażania
Te błędy mogą wystąpić podczas wdrażania serwera proxy zawierającego tę zasadę.
| Nazwa błędu | Przyczyna | Napraw |
|---|---|---|
InvalidProtocol |
Wdrożenie zasady MessageLogging może się nie udać z tym błędem, jeśli protokół
określona w elemencie <Protocol> jest nieprawidłowa. Prawidłowe protokoły to TCP i UDP.
W przypadku wysyłania komunikatów syslog przez TLS/SSL obsługiwany jest tylko protokół TCP. |
build |
InvalidPort |
Wdrożenie zasady MessageLogging może się nie udać z tym błędem, jeśli numer portu
nie jest określony w elemencie <Port> lub jest nieprawidłowy. Numer portu musi być
liczbą całkowitą większą od zera. |
build |
Zmienne błędów
Te zmienne są ustawiane po wystąpieniu błędu działania. Więcej informacji znajdziesz w artykule Podstawowe informacje o błędach związanych z naruszeniem zasad.
| Zmienne | Gdzie | Przykład |
|---|---|---|
fault.name="fault_name" |
fault_name to nazwa błędu podana w tabeli Błędy czasu działania powyżej. Nazwa błędu to ostatnia część kodu błędu. | fault.name Matches "StepDefinitionExecutionFailed" |
messagelogging.policy_name.failed |
policy_name to określona przez użytkownika nazwa zasady, która spowodowała błąd. | messagelogging.ML-LogMessages.failed = true |
Przykładowa odpowiedź na błąd
{
"fault":{
"detail":{
"errorcode":"steps.messagelogging.StepDefinitionExecutionFailed"
},
"faultstring":"Execution failed"
}
}Przykładowa reguła błędu
<FaultRule name="MessageLogging">
<Step>
<Name>ML-LogMessages</Name>
<Condition>(fault.name Matches "StepDefinitionExecutionFailed") </Condition>
</Step>
<Condition>(messagelogging.ML-LogMessages.failed = true) </Condition>
</FaultRule>Zmienne przepływu
W przypadku niepowodzenia zasad wypełniane są te zmienne:
messagelogging.failedmessagelogging.{stepdefinition-name}.failed
Powiązane artykuły
- Zmienne udostępniane przez Edge: Dokumentacja zmiennych