Soru Python günlüğü: GMT'ye zaman nasıl ayarlanır?


Günlüğe kaydetme zamanı ve GMT'ye nasıl ayarlanabiliyor?

(yani %(asctime)s biçimindeki parametre)


25
2018-06-12 09:16


Menşei




Cevaplar:


logging.Formatter.converter = time.gmtime

(docstring belgelenen logging.Formatter.formatTime)


48
2018-06-12 09:31



Ve şimdi resmi HTML belgelerini de güncelledim - 3.2 ve 3.3 için yakında ve 2.7 için birkaç gün içinde görünmelidir. - Vinay Sajip
açıklandığı İşte. Bir işleyiciye biçimlendirici eklemek isterseniz, önce bir biçimlendirici oluşturmanız gerekir. formatter = logging.Formatter (fmt)sonra yap formatter.converter = time.gmtime, sonra myHandler.setFormatter (biçimlendirici) - Sergey Markelov
@VinaySajip Bir günlükte dictConfig olarak nasıl ayarlanır? Günlüğe kaydetme bölümünü yapılandırmak için bir logging.dictConfig kullanan Django kullanıyorum. Teşekkürler - Michael
@YAmikep, bunu yapmanın bir yolu için cevabı rakslice görüyor. - Vinay Sajip
@VinaySajip Ok teşekkürler, ben ayarladım '()' : 'my.package.customFormatterFactory', Ayarlayamıyoruz 'class': 'my.package.customFormatterFactory'  bir biçimlendirici için. - Michael


Sadece ayar logging.Formatter.converter = time.gmtime Python 2.5'de benim için etkisiz.

Bu yüzden onunla bir alt sınıf oluşturdum ve bunu logging.the yerine yazarak yerine kullanıyorum.

class UTCFormatter(logging.Formatter):
    converter = time.gmtime

5
2017-11-30 23:13



(2.5'e benim için çalıştı. - George Lund
Python 2.7'de benim için çalıştı. Biraz zor olduğundan, örnekleme için YAML sözdizimini gösteren önerilen bir düzenleme eklendi. (Bir __init__() yöntemi, ilk düzenlemem önerildi.) - evadeflow


Bu cevapların her ikisinde de problemlerim var. Bu yüzden tüm senaryo için küresel saat dilimini değiştirdim:

os.environ['TZ'] = 'Europe/London'
time.tzset()

0
2018-04-22 10:31



Londra yaz aylarında GMT zamanında olmadığından dikkatli olun. - Brian Larsen
Bunun Linux üzerinde Python 2.7 kullanarak çalışan yanıt olduğunu gördüm. Belirttiğiniz her ne olursa olsun, Linux tzselect komutunu kullanarak, sisteminizde geçerli bir zaman dilimi olup 'tarih' komutuyla Python dışında test edin. Django kurulumu için bu Tamam görünüyor gibi görünüyor, ama yanlış Dezgonsky Python komut dosyalarından giriş yapan Python yaparken yanlış zaman dilimi alıyorum. - RichVel
Bu yanlış! Londra'daki saat diliminin sonsuza dek UTC olması garanti edilmez. - Federico
Bunun GMT olmadığının farkındayım, ama ihtiyaçlarım için yeterince iyiydi. - dijxtra