Zasada MessageLogging

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

File

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: true/false

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

Syslog

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

true lub false (domyślnie)

Opcjonalny, ale <FormatMessage>true</FormatMessage> jest wymagany w przypadku korzystania z usługi Loggly.

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:

<14>1 2023-03-20T09:24:39.039+0000 e49cd3a9-4cf6-48a7-abb9-7ftfe4d97d00 Apigee-Edge - - - Message starts here

Informacje wygenerowane przez Apigee obejmują:

  • <14> – wynik priorytetu (patrz protokół Syslog) na podstawie poziomu dziennika i poziomu obiektu wiadomości.
  • 1 – bieżąca wersja syslogu.
  • Data z przesunięciem względem czasu UTC (UTC = +0000).
  • Identyfikator UUID procesora komunikatów.
  • „Apigee-Edge - - - ”

Jeśli ma wartość Fałsz (domyślnie), do wiadomości nie są dodawane te stałe znaki.

PayloadOnly

true lub false (domyślnie)

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 false.

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 yyyy-MM-dd'T'HH:mm:ss.SSSZ. Sposób działania tego szablonu jest opisany w dokumentacji klasy SimpleDateFormat w języku Java.

SSLInfo

Umożliwia rejestrowanie wiadomości za pomocą protokołu SSL/TLS. Użyj z elementem podrzędnym <Enabled>true</Enabled>.

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: INFO (domyślnie), ALERT, WARN, ERROR

Ustaw konkretny poziom informacji, które mają być uwzględniane w dzienniku wiadomości.

Jeśli używasz elementu FormatMessage (ustawionego na wartość true), ustawienie logLevel wpływa na obliczony wynik priorytetu (liczbę w nawiasach ostrych) w informacjach wygenerowanych przez Apigee i dodanych na początku wiadomości.

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:

  1. Została ona wykonana tylko w ramach przepływu odpowiedzi.
  2. 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:

  1. Otwórz plik message-processor.properties w edytorze. Jeśli plik nie istnieje, utwórz go:
    > vi /opt/apigee/customer/application/message-processor.properties
  2. Ustaw właściwości w odpowiedni sposób:
    conf_system_apigee.syslogger.dateFormat=yy/MM/dd'T'HH:mm:ss.SSSZ
  3. Zapisz zmiany.
  4. Sprawdź, czy plik właściwości należy do użytkownika „apigee”:
    > chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
  5. 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 przed bin_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:

  1. Otwórz plik message-processor.properties w edytorze. Jeśli plik nie istnieje, utwórz go:
    > vi /opt/apigee/customer/application/message-processor.properties
  2. Ustaw właściwości w odpowiedni sposób:
    conf/message-logging.properties+log.root.dir=/opt/apigee/var/log/messages
  3. Zapisz zmiany.
  4. Sprawdź, czy plik właściwości należy do użytkownika „apigee”:
    > chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
  5. 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:

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.
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.

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.failed
  • messagelogging.{stepdefinition-name}.failed

Powiązane artykuły