Bir hata / uyarı algılanır algılanmaz (önceki soruya göre: Günlük iletileri panelinden WMS hata iletisi nasıl yakalanır) yakalamak için bir WMS katmanından hataları / uyarı yakalamak için aşağıdaki kodu pyqgis içinde ile QGIS içinde? )
Ancak "WMS" sağlayıcısı, ileti günlüğüne 100'den fazla hata isteği göndermeme konusunda bir kısıtlamaya sahip gibi görünüyor. hala doğru yanıt vermiyor. Bununla birlikte, günlük paneline kendi mesajlarını gönderirsem herhangi bir kısıtlama görünmemektedir (aşağıdaki koda bakınız).
Hata / uyarıyı, ileti günlüğü panelini kullanmak yerine, burada sorumlu olan örnekten (sanırım WMS sağlayıcısı) yakalamak için bir olasılık var mı? Ya da sadece çalışan bir işlemde günlük mesajları panelini silebilir / sıfırlayabilir veya sınırlamayı kaldırabilir misiniz?
Windows 10'da QGIS 2.18.2 kullanıyorum.
İşte python kodu:
# coding=utf-8
from qgis.core import *
wmsLayer_name="wms-dtk50_wgs"
url_with_params ='url=http://sg.geodatenzentrum.de/wms_dtk50?&crs=EPSG:25832&featureCount=10&format=image/png&layers=DTK50&styles='
wmsLayer = QgsRasterLayer(url_with_params, wmsLayer_name,'wms')
QgsMapLayerRegistry.instance().addMapLayer(wmsLayer)
def errorCatcher( msg, tag, level ):
if tag == 'WMS' and level != 0: #Warnings or Errors (0: Info, 1:Warning, 2:Error)
print "WMS error detected!"
myWMSLayer = QgsMapLayerRegistry.instance().mapLayersByName("wms-dtk50_wgs")[0]
myWMSLayer.triggerRepaint()
# connect with messageReceived SIGNAL from QgsMessageLog to an errorCatcher custom function
# instantly reacts if error/warning occurs
QgsMessageLog.instance().messageReceived.connect( errorCatcher )
#after 100 times triggering a "wmsLayer.triggerRepaint()",
# I get following warning in log messages panel "WMS":
# "2017-01-17T07:17:52 1 Not logging more than 100 request errors."
#this does not raise any issues and prints all 500 test messages in the log panel:
for i in range(500):
QgsMessageLog.instance().logMessage("Message #{}".format(i),"Test",2)
GÜNCELLEME: Bir özellik isteği gönderdim (bkz: https://hub.qgis.org/issues/16168 )