আমি ডাব্লুএমএস-স্তর থেকে ত্রুটিগুলি / সতর্কতা ধরতে পাইকগিসে নীচের কোডটি ব্যবহার করছি, ত্রুটি / সতর্কতা সনাক্ত হওয়ার সাথে সাথে একটি পুনরায় রঙ চালু করতে (পূর্ববর্তী প্রশ্নের ভিত্তিতে: লগ বার্তাগুলি প্যানেল থেকে ডাব্লুএমএস ত্রুটি বার্তাটি কীভাবে ধরা যায়) অজগর সহ কিউজিসে? )
তবে স্পষ্টতই "ডাব্লুএমএস" সরবরাহকারীর বার্তাগুলি লগের জন্য 100 টিরও বেশি ত্রুটির অনুরোধগুলি না প্রেরণের কোনও বিধিনিষেধ আছে বলে মনে হচ্ছে 100 ত্রুটি ত্রুটি / সতর্কতার পরেও আমি কোনও সংকেত ধরতে সক্ষম নই, এমনকি ডাব্লুএমএস-স্তর থাকলেও এখনও সঠিক প্রতিক্রিয়া না। তবুও, আমি যদি লগ প্যানেলে নিজের বার্তা পাঠাই তবে কোনও বিধিনিষেধ বলে মনে হচ্ছে না (নীচের কোডটি দেখুন)।
বার্তাগুলি লগ প্যানেলটি ব্যবহার না করে এখানে দায়বদ্ধ দৃষ্টান্তটি থেকে সরাসরি ত্রুটি / সতর্কতাটি ধরার সম্ভাবনা রয়েছে (আমার ধারণা এটি ডাব্লুএমএস-সরবরাহকারী)? অথবা সম্ভবত চলমান প্রক্রিয়াতে লগ বার্তা প্যানেলটি কেবল সাফ / রিসেট করতে হবে বা সীমাবদ্ধতাটি সরিয়ে ফেলতে হবে?
আমি উইন্ডোজ 10 এ কিউআইজিআইএস 2.18.2 ব্যবহার করছি।
অজগর কোডটি এখানে:
# 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)
আপডেট: আমি একটি বৈশিষ্ট্য অনুরোধ জমা দিয়েছি (দেখুন: https://hub.qgis.org/issues/16168 )