কিউজিআইএস-এ লগ বার্তা প্যানেল দিয়ে কীভাবে সমস্যাটি সমাধান করবেন: "100 টিরও বেশি অনুরোধ ত্রুটি লগ করা হচ্ছে না?"


9

আমি ডাব্লুএমএস-স্তর থেকে ত্রুটিগুলি / সতর্কতা ধরতে পাইকগিসে নীচের কোডটি ব্যবহার করছি, ত্রুটি / সতর্কতা সনাক্ত হওয়ার সাথে সাথে একটি পুনরায় রঙ চালু করতে (পূর্ববর্তী প্রশ্নের ভিত্তিতে: লগ বার্তাগুলি প্যানেল থেকে ডাব্লুএমএস ত্রুটি বার্তাটি কীভাবে ধরা যায়) অজগর সহ কিউজিসে? )

তবে স্পষ্টতই "ডাব্লুএমএস" সরবরাহকারীর বার্তাগুলি লগের জন্য 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 )


1
সীমাটি C ++ কোডে qgswmsprovider শ্রেণিতে শক্ত-ওয়্যার্ড বলে মনে হচ্ছে । উত্স থেকে QGIS সংকলন করা কি আপনার জন্য একটি বিকল্প?
স্টিভেন কে ২

@ স্টিভেন কে আহ ঠিক আছে আমি দেখতে পাচ্ছি, কোড অনুসারে বিভাগটি রয়েছে ... দুর্ভাগ্যক্রমে উত্স থেকে সংকলনের আমার অভিজ্ঞতা নেই। আমার কোডটি চলার সাথে সাথে আমাকে বেশ কয়েকটি মেশিনে কিউজিআইএস ইনস্টল করতে হবে। তবে যদি অন্য কোনও বিকল্প না থাকে তবে আমি অনুমান করি যে আমার কোনও বিকল্প নেই ... যাইহোক ইঙ্গিতটির জন্য THX!
অ্যাডোরসচ

উত্তর:


3

এই মুহুর্তে, 100 সীমাটি ডাব্লুএমএস সরবরাহকারীতে হার্ড কোডড od তবে কিউজিআইএস একটি দুর্দান্ত ওপেন সোর্স প্রকল্প এবং আপনি এই সীমাটিকে একটি কনফিগারযোগ্য প্যারামিটারে পরিণত করার জন্য একটি বৈশিষ্ট্য অনুরোধ জমা দিতে পারেন ।

যে কোনও বিকাশকারী এই বৈশিষ্ট্যটির অনুরোধ নিতে পারেন এবং কিউআইজিএসে একটি নতুন টান অনুরোধ জমা দিতে পারেন । যদি সমাধানটি গৃহীত হয়, মূল বিকাশকারীগণ আসন্ন সংস্করণ 3 এবং বর্তমান 2.14.x এবং 2.18.x সংস্করণ উভয়ই প্রয়োগ করতে পেরে খুশি হবেন।

সুতরাং, আপনার প্রশ্নের উত্তর হ'ল কিউজিআইএস-এ নতুন বৈশিষ্ট্য অনুরোধ জমা দেওয়া।


ঠিক আছে যে পরামর্শের জন্য ধন্যবাদ। যদিও আমি এক ধরণের কার্যকরী ধারণা পাওয়ার আশা করছিলাম, তবে আমি অনুমান করি এটি সম্ভবত একটি উত্তর হিসাবে পাওয়া যাবে। সুতরাং আমাকে হয় উত্স কোডটি হস্তান্তর করে উত্স থেকে সংকলন বিবেচনা করতে হবে বা একটি বৈশিষ্ট্য অনুরোধ জমা দিতে হবে এবং আশা করি ভবিষ্যতে কোনও সমাধান কার্যকর হতে পারে ...
অ্যাডোরসচ

আপনি যদি কোনও বৈশিষ্ট্য অনুরোধ প্রস্তুত এবং জমা দেন তবে আপনি ভবিষ্যতে অন্যদের সহায়তা করছেন যা একই সীমাবদ্ধতার মুখোমুখি হবে। আপনি সম্প্রদায়ে দরকারী কিছু ফিরিয়ে দিচ্ছেন। আপনি 100 বা সীমাবদ্ধতা এটি 5000 বা 10000 এ পরিবর্তন করে ঠিক করতে পারছেন, বিকাশকারীরা কোডটি ধারাবাহিকভাবে রেখে এবং ডকুমেন্টেশনটি আপডেট রেখে কেবল আপনার জন্য নয়, এমনভাবে আপনার অনুরোধটিতে উপস্থিত হওয়ার চেষ্টা করবেন। একটি বৈশিষ্ট্য অনুরোধ জমা দিয়ে আপনি কিউজিআইএস উন্নত করতে অবদান রাখছেন। বৈশিষ্ট্যটির অনুরোধটি গৃহীত হওয়ার পরে এবং টানার অনুরোধটি মার্জ হয়ে যাওয়ার পরে, আপনি রাত্রি বিল্ডগুলি ইনস্টল করতে এবং ব্যবহার করতে পারেন।
jgrocha

অবশ্যই, আমি এখানে আপনার সাথে! আপনার বক্তব্যটির জন্য থ্যাক্স, আপনার পয়েন্টটি উল্লেখ করে, কিউজিআইএসের মতো এ জাতীয় সফল ওপেন সোর্স সরঞ্জামটি একটি সক্রিয় সম্প্রদায়ের উপর ভিত্তি করে যা এটিকে এত গতিশীল করে তোলে এবং কীভাবে প্রত্যেকে এই বিকাশে অবদান রাখতে পারে।
এডোরসচ

আমি উপায় দ্বারা একটি বৈশিষ্ট্য অনুরোধ প্রস্তুত করব!
এডোরসচ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.