2014-10-07 34 views
11

Kayıt iletileri için bir miktar günlük kaydetmeye çalışıyorum. Bazı garip davranışlar alıyorum, bu yüzden here'u bulduğum minimal bir örnek bulmaya çalıştım.Python kayıt dosyası oluşturmuyor

In [1]: import logging 
    ...: logging.basicConfig(filename='example.log',level=logging.DEBUG) 
    ...: logging.debug('This message should go to the log file') 
    ...: logging.info('So should this') 
    ...: logging.warning('And this, too') 
WARNING:root:And this, too 

In [2]: ls example.log 

File not found 

herkes yanlış yapıyorum anlamak için bana yardımcı olabilir: Sadece benim tercüman içine orada anlatılan kolay örnek kopyalarken Burada gördüğünüz gibi dosya oluşturulmadı?

DÜZENLEME: girişi ikinci girdiden sonra İngilizceye çevirdi ve gereksiz parçaları çıkardı. Tek önemli olan, Python'un example.log dosyasını oluşturmamasıdır.

+2

ingilizce için almanca dan transelate misiniz? Bu çok daha kolay olurdu. –

+1

Orijinal yayınımı yeni düzenledim. Tek Alman, temelde 'example.log' dosyasının mevcut olmadığını söylüyor. Göstermek istediğim şey buydu ama çıktıda bir miktar Alman olduğunu fark etmemiştim. Bunun için üzgünüm ... – Chris

+0

Laufwerk C Hacim: şapka keine Bezeichnung. -> C Hacim: başlığı yok | Datei nicht gefunden -> Dosya bulunamadı | Verzeichnis von ...--> Dizin from ... –

cevap

18

Beklenmedik sonucunuzun nedeni, kök günlüğünün kendisini yapılandıran Python (IPython gibi) üzerinde bir şey kullandığınızdır. Kök logger zaten bunun için yapılandırılmış işleyicileri varsa

, the documentation for basicConfig() gereğince Bu işlev hiçbir şey yapmaz.

böyle bir şey ne sadece Python ile olsun:

C:\temp>python 
ActivePython 2.6.1.1 (ActiveState Software Inc.) based on 
Python 2.6.1 (r261:67515, Dec 5 2008, 13:58:38) [MSC v.1500 32 bit (Intel)] on 
win32 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import logging 
>>> logging.basicConfig(filename='example.log', level=logging.DEBUG) 
>>> logging.debug('This message should go to the log file') 
>>> logging.info('And so should this') 
>>> logging.warning('And this, too') 
>>> ^Z 

C:\temp>type example.log 
DEBUG:root:This message should go to the log file 
INFO:root:And so should this 
WARNING:root:And this, too 
1

Lütfen hangi işletim sistemini kullandığınızı belirtin.

Windows kullanıyor musunuz, Cygwin kullanıyor musunuz? Bu olmasa bile, bu bir çevre değişken problemine çok benziyor. PYTHONPATH'ın doğru şekilde ayarlandığından emin olun. Python kurulum dizini (muhtemelen C:/Python27 gibi bir şey) içeren PYTHONPATH adında bir sistem değişkeni ve bu klasördeki alt dizinler 'Lib', 'Lib/lib-tk' ve 'DLL' dizini oluşturmanızı öneririm . Bakınız here.

Ve daha az olası ... Bunu Linux sisteminde mi çalıştırıyorsunuz? Dizinde uygun izinlerin ayarlandığından emin olun. Bash'da izinleri göstermek için 'ls -la' kullanın. Dizinden 'chmod u + w.' Yazılı izin aldığınızdan emin olmak için.

+0

Windows kullanıyorum ... Ortam değişkenini bağlantınızda açıklandığı gibi ayarlamaya çalıştım ama şimdiye kadar hiç şans yok. Sanırım Python kurulumum hakkında birşeyler var.Python'u windows komut satırından başlatır ve sonra 'import logging 'yazıp' logging.basicConfig() 'yazarak bir hata alırım. Python, günlüğün 'basicConfig' özniteliğine sahip olmadığını iddia ediyor. Bu gerçekten garip ... – Chris

+0

Cygwin kullanıyor musunuz? – DanRea

+0

PYTHONPATH ortam değişkeniniz ne ayarlanır? – DanRea

İlgili konular