MessageLogging politikası

Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin.
bilgi

Ne?

API çalışma zamanı ortamındaki sorunları tespit etmenin en iyi yollarından biri, mesajları günlüğe kaydetmektir. Özel mesajları yerel bir diske (yalnızca Private Cloud için) veya sistem günlüğüne günlüğe kaydetmek için API'nize MessageLogging politikası ekleyip yapılandırabilirsiniz.

Numuneler

Sistem günlüğü

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

MessageLogging politika türünün yaygın bir kullanımı, bir sistem günlüğü hesabına giriş yapmaktır. Sistem günlüğü için yapılandırıldığında bir API proxy'si, günlük mesajlarını Apigee Edge'den uzak bir sistem günlüğü sunucusuna yönlendirir. Zaten kullanılabilir bir sistem günlüğü sunucunuz olmalıdır. Aksi takdirde Splunk, Sumo Logic ve Loggly gibi herkese açık günlük yönetimi hizmetleri mevcuttur. Üçüncü taraf günlük yönetimi hizmetlerini yapılandırma bölümüne bakın.

Örneğin, API'nizin tüketici uygulamalarından aldığı her istek mesajıyla ilgili bilgileri günlüğe kaydetmeniz gerektiğini varsayalım. 3f509b58 değeri, loggly hizmetine özel bir anahtar değerini temsil eder. Loggly hesabınız varsa loggly anahtarınızı değiştirin. Oluşturulan günlük mesajı dört değerle doldurulur: işlem ile ilişkili kuruluş, API proxy'si ve ortam adı ile istek mesajındaki sorgu parametresinin değeri.

Private Cloud dağıtımı için Edge kullanıyorsanız günlük mesajlarını bir dosyaya da yazabilirsiniz.

TLS/SSL üzerinden sistem günlüğü

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

<SSLInfo> blokunu ekleyerek TLS/SSL üzerinden üçüncü taraf mesaj günlük kaydı sağlayıcılarına mesaj gönderebilirsiniz.

Dosya rotasyonu: boyut

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

Dosya boyutuna göre dosya rotasyonu.

Dosya rotasyonu: süre

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

Zamana göre dosya rotasyonu.

Dosya rotasyonu: saat ve boyut

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

Zamana ve boyuta göre dosya rotasyonu.

Akış özellikli

<MessageLogging name="LogPolicy">
  <File>
  ....
  ....
  </File>
  <BufferMessage>true</BufferMessage>
</MessageLogging>

Akış özellikli mesaj günlük kaydı


Öğe referansı

MessageLogging politika türünü yapılandırmak için aşağıdaki öğeleri kullanın.

Alan adı Alan Açıklaması

File

Yerel dosya hedefi. (Dosya günlük kaydı yalnızca Private Cloud dağıtımları için Edge'de desteklenir.) Dosyaların nerede depolandığı hakkında bilgi edinmek için Private Cloud için Edge'de günlük dosyası konumu bölümüne bakın.

Message İstediğiniz bilgileri yakalamak için metni değişkenlerle birleştirerek günlük dosyasına gönderilecek mesajı oluşturun. Sana Özel bölümüne bakın.
FileName İletinin günlüğe kaydedildiği günlük dosyasının adı.
FileRotationOptions
rotateFileOnStartup

Özellik. Geçerli değerler: true/false

Doğru değerine ayarlanırsa mesajlaşma motoru her yeniden başlatıldığında günlük dosyası döndürülür.

FileRotationType Bir günlük dosyasının rotasyon politikasını (size veya time) belirtir.
MaxFileSizeInMB (Rotasyon türü olarak size seçildiğinde) Sunucunun, günlük mesajlarını ayrı bir dosyaya taşımasını tetikleyen günlük dosyasının boyutunu belirtir. Günlük dosyası belirtilen boyuta ulaştıktan sonra sunucu, mevcut günlük dosyasını yeniden adlandırır.
RotationFrequency (Rotasyon türü olarak time seçildiğinde) Günlük mesajlarını ayrı bir dosyaya taşıması için sunucuyu tetikleyen süreyi dakika cinsinden belirtir. Belirtilen zaman aralığı bittikten sonra mevcut günlük dosyası yeniden adlandırılır.
MaxFilesToRetain

Rotasyon ayarlarınız bağlamında saklanacak maksimum dosya sayısını belirtir. Varsayılan değer 8'dir.

Sıfır (0) değerini belirtirseniz günlük dosyaları süresiz olarak saklanır, ancak dosyaların hiçbiri silinmese veya yeniden adlandırılmasa da dosya rotasyonu ayarlarınıza tabi olur. Bu nedenle, gelecekte disk doluluğu hatalarını önlemek için bu değeri sıfırdan büyük bir değere ayarlayın veya saklanan eski günlük dosyalarını temizlemeyi ya da arşivlemeyi sağlayan düzenli ve otomatik bir sistem uygulayın.

BufferMessage

Proxy'niz için HTTP akışı etkinleştirilmişse istek/yanıt mesajları arabelleğe alınmaz. Akış mesajının ayrıştırılmasını gerektiren içeriği günlüğe kaydetmek istiyorsanız BufferMessage'ı true olarak ayarlayın. Örnek için "Akış etkin" örnek sekmesine bakın. Varsayılan: false

Syslog

Sistem günlüğü hedefi. Splunk, Sumo Logic veya Loggly'ye sistem günlüğünü göndermek için Üçüncü taraf günlük yönetimi hizmetlerini yapılandırma bölümüne bakın.

Message

İstediğiniz bilgileri yakalamak için metni değişkenlerle birleştirerek sistem günlüğüne gönderilecek mesajı oluşturun. Sana Özel bölümüne bakın.

Not: Yanıt değişkenleri, Hata Akışı sonrasında PostClientFlow'da kullanılamayacaktır. Hem hata hem de başarı durumları ile ilgili yanıt bilgilerini günlüğe kaydetmek için mesaj değişkenlerini kullanın. Kullanım notları'na da bakın.

Host Sistem günlüğünün gönderileceği sunucunun ana makine adı veya IP adresi. Bu öğeyi eklemezseniz varsayılan olarak localhost kullanılır.
Port Sistem günlüğünün çalıştığı bağlantı noktası. Bu öğeyi eklemezseniz varsayılan olarak 514 kullanılır.
Protocol TCP veya UDP (varsayılan). UDP daha yüksek performanslı olsa da TCP protokolü, ileti günlüğünün sistem günlüğü sunucusuna teslim edilmesini garanti eder. TLS/SSL üzerinden sistem günlüğü mesajları göndermek için yalnızca TCP desteklenir.
FormatMessage

true veya false (varsayılan)

İsteğe bağlıdır ancak Loggly ile kullanım için <FormatMessage>true</FormatMessage> gereklidir.

Bu öğe, Apigee tarafından oluşturulan ve mesajın başına eklenen içeriğin biçimini kontrol etmenizi sağlar. Doğru değerine ayarlanırsa sistem günlüğü mesajının başına sabit sayıda karakter eklenir. Böylece bu bilgileri mesajlardan filtreleyebilirsiniz. Aşağıda, sabit biçim için bir örnek verilmiştir:

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

Apigee tarafından oluşturulan bilgiler şunları içerir:

  • <14> - Mesajın günlük ve tesis düzeyine göre hesaplanan bir öncelik puanı (Sistem Günlüğü Protokolü'ne bakın).
  • 1 - Geçerli sistem günlüğü sürümü.
  • UTC farkına sahip tarih (UTC = +0000).
  • İleti işlemcisi UUID'si.
  • "Apigee-Edge - - - "

Yanlış (varsayılan) değerine ayarlanırsa mesajın başına bu sabit karakterlerin başına eklenmez.

PayloadOnly

true veya false (varsayılan)

Bu öğe, Apigee tarafından oluşturulan mesajların biçimini, başına FormatMessage tarafından belirtilen karakterler olmadan sistem günlüğü mesajının yalnızca gövdesini içerecek şekilde ayarlar.

Bu öğeyi dahil etmez veya boş bırakırsanız varsayılan değer false olur.

FormatMessage konusuna bakın.

DateFormat

İsteğe bağlı.

Her günlük mesajının zaman damgasını biçimlendirmek için kullanılacak biçimlendirme şablonu dizesi. Apigee, varsayılan olarak yyyy-MM-dd'T'HH:mm:ss.SSSZ kullanır. Bu şablonun davranışı, Java'nın SimpleDateFormat sınıfı belgelerinde açıklanmıştır.

SSLInfo

İletileri SSL/TLS üzerinden günlüğe kaydetmenize olanak tanır. <Enabled>true</Enabled> alt öğesiyle kullanın.

Bu öğeyi dahil etmez veya boş bırakırsanız varsayılan değer false (yanlış) olur (TLS/SSL yok).

<SSLInfo>
    <Enabled>true</Enabled>
</SSLInfo>

<SSLInfo> etiketini, API proxy yapılandırma referansı bölümünde açıklandığı üzere iki yönlü TLS/SSL'yi etkinleştirme dahil olmak üzere bir TargetEndpoint'te yaptığınız şekilde yapılandırabilirsiniz. Yalnızca TCP protokolü desteklenir.

logLevel

İsteğe bağlı.

Geçerli değerler: INFO (varsayılan), ALERT, WARN, ERROR

İleti günlüğüne eklenecek belirli bir bilgi düzeyini ayarlayın.

FormatMessage öğesini kullanıyorsanız (doğru değerine ayarlanırsa) logLevel ayarınız, Apigee tarafından oluşturulan mesajın başına eklenen bilgilerde hesaplanan öncelik puanını (açılı ayraçlar içindeki sayı) etkiler.

Şemalar


Kullanım notları

API proxy akışına bir MessageLogging politikası eklerken politikayı, PostClientFlow adlı özel bir akıştaki ProxyEndpoint yanıtına yerleştirmeyi düşünün. PostClientFlow, istek isteyen istemciye yanıt gönderildikten sonra yürütülür. Bu sayede tüm metriklerin günlük kaydı yapılabilir. PostClientFlow'un kullanımıyla ilgili ayrıntılar için API proxy'si yapılandırma referansı başlıklı makaleye bakın.

PostClientFlow iki şekilde özeldir:

  1. Bu işlem yalnızca yanıt akışının bir parçası olarak yürütüldü.
  2. Bu, proxy hata durumuna girdikten sonra yürütülen tek akıştır.

Proxy'nin başarılı veya başarısız olmasına bakılmaksızın yürütüldüğü için MessageLogging politikalarını PostClientFlow'a yerleştirebilir ve her zaman çalıştıklarından emin olabilirsiniz.

Aşağıdaki Trace görüntüsü, DefaultFaultRule yürütüldükten sonra PostClientFlow'un bir parçası olarak yürütülen MessageLogging politikasını göstermektedir:

Bu örnekte, API Anahtarını Doğrulama politikası, geçersiz bir anahtardan kaynaklanan hataya neden olmuştur.

Aşağıda, PostClientFlow'u içeren ProxyEndpoint tanımı gösterilmektedir:

<ProxyEndpoint name="default">
  ...
  <PostClientFlow>
    <Response>
      <Step>
        <Name>Message-Logging-1</Name>
      </Step>
    </Response>
  </PostClientFlow>
  ...
</ProxyEndpoint>

Edge, mesajları basit metin olarak günlüğe kaydeder. Dilerseniz günlük kaydını, isteğin veya yanıtın alındığı tarih ve saat, istekteki kullanıcı kimliği, isteğin gönderildiği kaynak IP adresi gibi değişkenleri içerecek şekilde yapılandırabilirsiniz. Edge, mesajları eşzamansız olarak günlüğe kaydeder. Yani API'nize açıklama metinlerinin engellenmesinden kaynaklanabilecek herhangi bir gecikme yaşanmaz.

MessageLogging politikası, bellekteki günlüğe kaydedilen mesajları bir arabelleğe yazar. Mesaj günlük kaydedici, arabellekteki mesajları okur ve daha sonra, yapılandırdığınız hedefe yazar. Her hedefin kendi tamponu vardır.

Arabelleğe yazma hızı, okuma hızının üzerine çıkarsa arabellek taşması ve günlük kaydı başarısız olur. Bu durumda, günlük dosyasında aşağıdakini içeren bir mesaj görebilirsiniz:

Log message size exceeded. Increase the max message size setting

Edge for Private Cloud 4.15.07 ve önceki sürümlerde bu sorunla karşılaşırsanız message-logging.properties dosyasını bulun ve şu çözümü kullanın:

message-logging.properties dosyasında max.log.message.size.in.kb özelliğini (varsayılan değer = 128 KB) artırın.

Edge for Private Cloud 4.16.01 ve sonraki sürümler için conf/message-logging.properties+max. log.message.size.in.kb özelliğini /opt/apigee/customer/application/message-processor.properties dosyasında ayarlayın ve İleti İşleyici'yi yeniden başlatın. Bu mülke başlangıçta varsayılan olarak yorum yapıldığını lütfen unutmayın.

Not: Edge'deki yanıt mesajı değişkenleri Hata Akışı'nda kullanılamaz. Bir önceki akış Hata Akışı ise bu değişkenler PostClientFlow'da da kullanılamaz. PostClientFlow'daki yanıt bilgilerini günlüğe kaydetmek istiyorsanız message nesnesini kullanın. Bir hata olsa da olmasa da yanıttaki başlıklara ve diğer bilgilere ulaşmak için bu nesneyi kullanabilirsiniz. Daha fazla bilgi ve örnek için Mesaj değişkenleri bölümüne bakın.

Private Cloud için Edge'de günlük mesajı zaman damgasını kontrol etme

Varsayılan olarak tüm günlük mesajlarındaki zaman damgası şu biçimdedir:

yyyy-MM-dd'T'HH:mm:ss.SSSZ

Bu sistem genelindeki varsayılan, DateFormat öğesi kullanılarak sistem günlüğü hedefleri için geçersiz kılınabilir. Bu şablonun davranışı, Java'nın SimpleDateFormat sınıfı belgelerinde açıklanmıştır. Bu tanıma göre yyyy, 4 basamaklı bir yılla, MM 2 basamaklı bir ay numarasıyla ve bu şekilde devam edecek. Yukarıdaki biçim, şu biçimde bir dizeyle sonuçlanabilir:

2022-09-28T22:38:11.721+0000

Bu biçimi kontrol etmek için Edge Mesaj İşleyici'de conf_system_apigee.syslogger.dateFormat özelliğini kullanabilirsiniz. Örneğin, mesaj biçimini şu şekilde değiştirebilirsiniz:

yy/MM/dd'T'HH:mm:ss.SSSZ

..tirelerin eğik çizgiyle değiştirilmesi ve yılı 2 basamaklı olarak kısaltmanız, biçimde bir zaman damgası kaydeder:

22/09/28T22:38:11.721+0000

Biçimi değiştirmek için:

  1. message-processor.properties dosyasını bir düzenleyicide açın. Dosya mevcut değilse dosyayı oluşturun:
    > vi /opt/potansiyel/customer/application/message-processor.properties
  2. Özellikleri istediğiniz gibi ayarlayın:
    conf_system_apigee.syslogger.dateFormat=yy/MM/dd'T'HH:mm:ss.SSSZ
  3. Değişikliklerinizi kaydedin.
  4. Özellikler dosyasının, 'Apigee' kullanıcısının sahibi olduğundan emin olun:
    > chown gelir:Apigee /opt/gelir/customer/application/message-processor.properties
  5. Edge Mesaj İşleyici'yi yeniden başlatın:
    > /opt/ gelir/Apigee-service/bin/ ekip/hizmet kenarı-mesaj-işlemcisini yeniden başlatın

Private Cloud için Edge'de günlük dosya konumu

Private Cloud 4.16.01 ve sonraki sürümleri için Edge

Varsayılan olarak Private Cloud mesaj günlükleri, Mesaj İşleyici düğümlerinde aşağıdaki dizinde bulunur:

/opt/apigee/var/log/edge-message-processor/messagelogging/org_name/environment/api_proxy_name/revision/logging_policy_name/

Mesaj İşlemcilerindeki Message-logging.properties dosyasının özelliklerini değiştirerek varsayılan günlük konumunu değiştirebilirsiniz:

  • bin_setenv_data_dir - Günlük dosyalarının depolanması için kök yolu belirler. Örneğin, bin_setenv_data_dir=/opt/apigee/var/log
  • conf_message-logging_log.root.dir: Bunu conf/message-logging.properties+log.root.dir=custom/folder/, the path is appended to the bin_setenv_data_dir location. gibi göreli bir yol olarak ayarlarsanız

    Bunu conf/message-logging.properties+log.root.dir=/opt/apigee/var/log/messages gibi bir mutlak yol olarak ayarlarsanız mesaj günlükleri /opt/apigee/var/log/messages/messagelog/ içinde depolanır. Mutlak yol, bin_setenv_data_dir özelliğine göre önceliklidir.

    Varsayılan olarak yorum özelliği devre dışı bırakıldığından, mülke conf/message-logging.properties+log.root.dir olarak referans vermeniz gerektiğini unutmayın. Daha fazla bilgi için Şu anda yorum yapılmamış bir jeton ayarlama bölümüne bakın.

Tüm günlük dosyalarının aynı dizine yerleştirilmesi için günlük dosyalarını düz bir dosya yapısında depolamak istiyorsanız Message-logging.properties dosyasında conf/message-logging.properties+enable.flat.directory.structure değerini true olarak ayarlayın. Mesajlar, yukarıdaki özellikler tarafından belirtilen dizinde depolanır ve dosya adları {org}_{environment}_{api_proxy_name}_{revision}_{logging_policy_name}_{filename} biçimindedir.

Bu özellikleri ayarlamak için:

  1. message-processor.properties dosyasını bir düzenleyicide açın. Dosya mevcut değilse dosyayı oluşturun:
    > vi /opt/potansiyel/customer/application/message-processor.properties
  2. Özellikleri istediğiniz gibi ayarlayın:
    conf/message-logging.properties+log.root.dir=/opt/apigee/var/log/messages
  3. Değişikliklerinizi kaydedin.
  4. Özellikler dosyasının, 'Apigee' kullanıcısının sahibi olduğundan emin olun:
    > chown gelir:Apigee /opt/gelir/customer/application/message-processor.properties
  5. Edge bileşenini yeniden başlatın:
    > /opt/ gelir/qwiklabs/Apigee-service/bin/ gelir sağladığınızda: Edge-message-processor restart

Private Cloud 4.15.07 ve önceki sürümler için Edge

Mesaj günlükleri, varsayılan olarak mesaj işlemcilerinde aşağıdaki konumda bulunur:

/opt/apigee4/var/log/apigee/message-processor/messagelog/{org}/{environment}/{api_proxy_name}/{revision}/{logging_policy_name}/

Mesaj işlemcilerindeki Message-logging.properties dosyasında aşağıdaki özellikleri değiştirerek varsayılan günlük konumunu değiştirebilirsiniz:

  • data.dir - Günlük dosyası depolamasının kök yolunu ayarlar. Örneğin, data.dir=/opt/Apigee4/var/log
  • log.root.dir - Bunu log.root.dir=custom/folder/ gibi göreli bir yola ayarlarsanız yol, data.dir konumuna eklenir.

Örneğin, iki özelliğin kombinasyonu, günlük kaydını /opt/Apigee4/var/log/custom/folder/messagelog/ konumunda ayarlar (/messagelog öğesinin otomatik olarak eklendiğine dikkat edin).

Bunu log.root.dir=/opt/apigee4/var/log/messages gibi mutlak bir yol olarak ayarlarsanız mesaj günlükleri, /opt/Apigee4/var/log/messages/messagelog/ içinde saklanır. log.root.dir dosyasındaki mutlak yol, data.dir öğesine göre önceliklidir.

Tüm günlük dosyalarının aynı dizine yerleştirilmesi için günlük dosyalarını düz bir dosya yapısında depolamak istiyorsanız Mesaj İşleyicileri'ndeki message-logging.properties dosyasında enable.flat.directory.structure özelliğini true olarak ayarlayın. İletiler yukarıdaki özelliklerde belirtilen dizinde depolanır ve dosya adları {org}_{environment}_{api_proxy_name}_{revision}_{logging_policy_name}_{filename} biçiminde olur.

Mesaj şablonundaki değişkenler için varsayılan değerler

İleti şablonundaki her değişken için varsayılan değerler ayrı ayrı belirtilebilir. Örneğin, request.header.id değişkeni çözümlenemezse değeri unknown değeriyle değiştirilir.

<Message>This is a test message. id = {request.header.id:unknown}</Message>

Message öğesinde defaultVariableValue özelliği ayarlanarak tüm çözümlenmemiş değişkenler için ortak bir varsayılan değer belirtilebilir:

<Message defaultVariableValue="unknown">This is a test message. id = {request.header.id}</Message>

Üçüncü taraf günlük yönetimi hizmetlerini yapılandırma

MessageLogging politikası; Splunk, Sumo Logic ve Loggly gibi üçüncü taraf günlük yönetimi hizmetlerine sistem günlüğü mesajları göndermenize olanak tanır. Bu hizmetlerden birine sistem günlüğü göndermek istiyorsanız hizmetin ana makinesini, bağlantı noktasını ve protokolünü yapılandırmak için hizmetin dokümanlarına bakın, ardından bu politikadaki Sistem günlüğü öğesini uygun şekilde ayarlayın.

Üçüncü taraf günlük yönetimi yapılandırması için aşağıdaki dokümanlara göz atın:

Hata referansı

Bu bölümde, bu politika bir hatayı tetiklediğinde Edge tarafından ayarlanan hata kodları ile hata mesajları ve döndürülen hata mesajları ile Edge tarafından ayarlanan hata değişkenleri açıklanmaktadır. Bu bilgiyi, hataları ele almak için hata kuralları geliştirip geliştirmediğinizi bilmeniz önemlidir. Daha fazla bilgi için Politika hataları hakkında bilmeniz gerekenler ve Hataları işleme bölümlerine bakın.

Çalışma zamanı hataları

Politika yürütüldüğünde bu hatalar ortaya çıkabilir.

Hata kodu HTTP durumu Neden
steps.messagelogging.StepDefinitionExecutionFailed 500 Hata dizesine bakın.

Dağıtım hataları

Bu hatalar, bu politikayı içeren bir proxy dağıttığınızda ortaya çıkabilir.

Hata adı Neden Düzelt
InvalidProtocol <Protocol> öğesi içinde belirtilen protokol geçerli değilse MessageLogging politikasının dağıtımı bu hatayla başarısız olabilir. Geçerli protokoller TCP ve UDP'dir. TLS/SSL üzerinden sistem günlüğü mesajları göndermek için yalnızca TCP desteklenir.
InvalidPort Bağlantı noktası numarası <Port> öğesinde belirtilmezse veya geçerli değilse MessageLogging politikasının dağıtımı bu hatayla başarısız olabilir. Bağlantı noktası numarası sıfırdan büyük bir tam sayı olmalıdır.

Hata değişkenleri

Bu değişkenler, bir çalışma zamanı hatası oluştuğunda ayarlanır. Daha fazla bilgi için Politika hataları hakkında bilmeniz gerekenler bölümüne bakın.

Değişkenler Konum Örnek
fault.name="fault_name" fault_name, yukarıdaki Çalışma zamanı hataları tablosunda listelenen hatanın adıdır. Hata adı, hata kodunun son kısmıdır. fault.name Matches "StepDefinitionExecutionFailed"
messagelogging.policy_name.failed policy_name, hataya neden olan politikanın kullanıcı tarafından belirtilen adıdır. messagelogging.ML-LogMessages.failed = true

Örnek hata yanıtı

{  
   "fault":{  
      "detail":{  
         "errorcode":"steps.messagelogging.StepDefinitionExecutionFailed"
      },
      "faultstring":"Execution failed"
   }
}

Hata kuralı örneği

<FaultRule name="MessageLogging">
    <Step>
        <Name>ML-LogMessages</Name>
        <Condition>(fault.name Matches "StepDefinitionExecutionFailed") </Condition>
    </Step>
    <Condition>(messagelogging.ML-LogMessages.failed = true) </Condition>
</FaultRule>


Akış değişkenleri

Politika hatası durumunda aşağıdaki değişkenler doldurulur.

  • messagelogging.failed
  • messagelogging.{stepdefinition-name}.failed

İlgili konular