QGIS डिफ़ॉल्ट रूप से किसी फ़ाइल में अपने लॉग संदेश नहीं लिखता है।
यदि आपके पास एक डीबग बिल्ड (सामान्य रूप से नाइटलाइज़ हैं) तो उन्हें stdout को लिखा जाता है। इसका मतलब है कि यदि आप इसे लिनक्स पर एक टर्मिनल में चलाते हैं तो आपको वहां संदेश दिखाई देंगे। विंडोज पर मुझे लगता है कि विंडोज के लिए डिबगिंग टूल या ऐसा ही एक टूल है जो संदेशों को इंटरसेप्ट कर सकता है।
एक विकल्प कुछ न्यूनतम अजगर स्क्रिप्टिंग का उपयोग करना है। प्रत्येक संदेश Qt सिग्नल के रूप में उत्सर्जित होता है। इसलिए हम इन संकेतों से जुड़ सकते हैं और उन्हें एक फ़ाइल में लिख सकते हैं। बस अपने python कंसोल में निम्न कमांड कॉपी करें
QGIS 3 के लिए:
filename = '/tmp/qgis.log'
def write_log_message(message, tag, level):
with open(filename, 'a') as logfile:
logfile.write('{tag}({level}): {message}'.format(tag=tag, level=level, message=message))
QgsApplication.messageLog().messageReceived.connect(write_log_message)
या QGIS 2 के लिए:
filename = '/tmp/qgis.log'
def write_log_message(message, tag, level):
with open(filename, 'a') as logfile:
logfile.write('{tag}({level}): {message}'.format(tag=tag, level=level, message=message))
QgsMessageLog.instance().messageReceived.connect(write_log_message)
जब आप इस कोड को चलाते हैं, तो आउटपुट को लिखा जाएगा /tmp/qgis.log
।