QGIS เขียนข้อความบันทึกข้อผิดพลาดที่ไหน?


33

ฉันต้องการอ่านและคัดลอกบันทึกข้อผิดพลาดสำหรับข้อขัดข้องที่ฉันพบใน QGIS 2.0 ข้อผิดพลาดที่ฉันได้รับค้าง QGIS ดังนั้นฉันต้อง ctrl-alt-del ฉันเห็นข้อความล่าสุดในแผงควบคุม แต่ไม่สามารถคัดลอกหรือเลื่อนกลับเพื่อดูข้อความก่อนหน้า เมื่อฉันเปิดขึ้นอีกครั้งแผงข้อความบันทึกได้รีเซ็ตเป็นศูนย์ (QGIS เริ่มต้น ฯลฯ ) ดังนั้นข้อความแสดงข้อผิดพลาดการแปลงทั้งหมดที่ฉันต้องการจะหายไป

ข้อความบันทึกที่เก่ากว่าเขียนลงดิสก์หรือไม่

คำตอบ:


31

QGIS ไม่ได้เขียนข้อความบันทึกลงในไฟล์โดยค่าเริ่มต้น

หากคุณมีการสร้างการแก้ปัญหา (ปกติคือ nightlies) พวกเขาเขียนไปยัง stdout นั่นหมายความว่าหากคุณรันใน terminal บน linux คุณจะเห็นข้อความที่นั่น บน Windows ฉันคิดว่ามีเครื่องมือที่เรียกว่า Debugging Tools สำหรับ Windows หรือคล้ายกันที่สามารถดักจับข้อความ

อีกทางเลือกหนึ่งคือใช้สคริปต์หลามน้อยที่สุด ทุกข้อความถูกปล่อยออกมาเป็นสัญญาณ Qt ดังนั้นเราสามารถเชื่อมต่อกับสัญญาณเหล่านี้และเขียนลงในไฟล์ เพียงคัดลอกคำสั่งต่อไปนี้ไปยังคอนโซลหลามของคุณ

สำหรับ 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เมื่อคุณเรียกใช้รหัสนี้การส่งออกจะถูกเขียนไป


ควรจะมีบรรทัดว่างระหว่างปลายนิยามฟังก์ชันและบรรทัดสุดท้ายสำหรับคอนโซลหลามจะมีความสุขกับการคัดลอก / วาง
ราฟาเอล

21

แม้ว่าสิ่งนี้จะไม่ช่วยแก้ไขปัญหานี้ แต่ถ้าคุณแค่ต้องการดูบันทึกระหว่างรันไทม์ (เช่น QGIS ไม่พัง) คุณสามารถเปิดใช้งานพาเนลข้อความบันทึกได้

ใน QGIS ไปที่: ดู> พาเนล> บันทึกข้อความ

ตรวจสอบให้แน่ใจว่าได้ทำเครื่องหมายในช่องแล้ว


9
โปรดอ่านคำถามอีกครั้ง
สเตฟาน

คุณจะเรียกแท็บกลับมาในพาเนลข้อความบันทึกได้อย่างไรหากคุณสูญเสียคู่
user32882

+1 เนื่องจากนี่คือคำตอบที่ถูกต้อง ความคิดเห็นเกี่ยวกับชุมชน Stackexchange อยู่นอกบรรทัด
Grzegorz Oledzki

8

กำลังดำเนินการ => ตัวเลือก

คุณต้องตรวจสอบสิ่งนี้: 'ให้เปิดกล่องโต้ตอบหลังจากเรียกใช้อัลกอริทึม'

หลังจากนั้นคุณสามารถคัดลอกบันทึกข้อผิดพลาดที่ผ่านมา

ป้อนคำอธิบายรูปภาพที่นี่


1

เสียงอาจชัดเจน แต่ฉันพบว่ามีประโยชน์ในการทำให้กล่องข้อความ QGIS เป็นบทสนทนาแบบลอยตัวเพื่อให้คุณสามารถขยายจากบนลงล่างของหน้าจอ สิ่งนี้จะช่วยให้คุณเห็นและพิมพ์ข้อความได้มากขึ้นเมื่อหน้าจอ QGIS ขัดข้อง ขออภัยฉันไม่ทราบว่า QGIS เขียนข้อความเหล่านี้ที่ไหน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.