QGIS hata günlüğü iletilerini nereye yazar?


33

QGIS 2.0'da karşılaştığım çökmeler için hata günlüğünü okumak ve kopyalamak istiyorum. Aldığım hata QGIS donuyor bu yüzden ctrl-alt-del. Paneldeki son mesajı görebiliyorum, ancak önceki mesajları görmek için kopyalayamıyor veya geri kaydıramıyor. Yeniden açtığımda, günlük mesajı paneli sıfıra sıfırlandı (QGIS başlangıç, vb.), Böylece istediğim tüm dönüştürme hata mesajları kayboldu.

Eski günlük mesajları diske bir yere mi yazılmıştır?

Yanıtlar:


31

QGIS, günlük iletilerini varsayılan olarak bir dosyaya yazmaz.

Eğer bir hata ayıklama yapınız varsa (normalde geceler vardır) stdout'a yazılırlar. Bu, Linux üzerinde bir terminalde çalıştırırsanız, oradaki mesajları göreceğiniz anlamına gelir. Windows'ta Windows için Hata Ayıklama Araçları adı verilen ve iletileri engelleyebilecek benzeri bir araç olduğunu düşünüyorum.

Bir alternatif, bazı minimal python komut dosyası kullanmaktır. Her mesaj bir Qt sinyali olarak verilir. Bu nedenle bu sinyallere bağlanabilir ve bunları bir dosyaya yazabiliriz. Basitçe senin piton konsola aşağıdaki komutu kopyalayıp

QGIS 3 için:

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)

Veya QGIS 2 için:

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)

Bu kodu çalıştırdığınızda, çıktı yazılacaktır /tmp/qgis.log.


İşlev tanımının sonu ile Python konsolunun kopya / yapıştır işleminden memnun olması için son satır arasında boş bir satır olmalıdır
raphael

21

Sadece çalışma zamanı sırasında günlükleri görmek istiyorsanız bu (yani QGIS edilir bu özel sorunu olan yardımcı olmaz iken değil çökmesini) kullanarak, günlük mesajlarını panelini etkinleştirebilirsiniz.

QGIS'e Git: Görünüm> Paneller> Günlük Mesajları

Kutunun işaretlendiğinden emin olun.


9
Lütfen soruyu bir kez daha okuyun.
Stefan,

Bir kaçını kaybederseniz günlük mesajları panelindeki sekmeleri nasıl geri alırsınız?
user32882

+1, bu doğru cevaptır. Stackexchange topluluğu hakkında yorum olsa da çizgi dışında.
Grzegorz Oledzki

8

İşleme => Seçenekler

Bunu kontrol etmeniz gerekir: 'Bir algoritmayı çalıştırdıktan sonra iletişim kutusunu açık tut'

Bundan sonra hata günlüğünü kopyalayabilirsiniz

görüntü tanımını buraya girin


1

Sesi açıkça belli edebilir, ancak QGIS mesaj kutusunu ekranın yukarıdan aşağıya doğru genişletebilmeniz için kayan bir diyalog haline getirmeyi faydalı buldum. Bu, QGIS çöktüğünde ekranı daha fazla ileti görmenizi ve yazdırmanızı sağlar. Üzgünüm, QGIS'in bu mesajları nerede yazdığını bilmiyorum.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.