folgendes Problem:
Ich habe ein Programm bei dem man verschiedene aktivitäten über mehrere Pythonskripte ansprechen kann. z.B. startet das Programm wenn start.py aufgerufen wird, beendet wird es mit stop.py etc.
Nun habe ich zwei Log-Dateien in die bestimmte Daten geloggt werden sollen.
Den Code dafür brauche ich ja nun in allen meinen Skripten.
Ich könnte ihn nun da einfach hineinkopieren aber dann habe ich ihn an N Stellen stehen und wenn was geändert werden muss kann man leicht eine der Dateien übersehen. Deshalb wollte ich diese Konfiguration in ein extra Modul auslagern das ich dann überall importieren kann.
Das sieht momentan so aus:
logginghelper.py
Code: Alles auswählen
try:
import logging
import logging.handlers
import logging.config
if not logging.__author__ == 'Vinay Sajip <vinay_sajip@red-dove.com>':
raise AttributeError
except AttributeError, e:
print >> sys.stderr, 'Apparently wrong logging module installed'
exit()
except ImportError:
print >> sys.stderr, 'logging modul not found!'
exit()
logging.config.fileConfig("config.cfg")
tweetlog = logging.getLogger('tweets')
def tweet(tweetobject):
tweetlog.info(tweetobject.text.replace("\n", ""), extra={'username': tweetobject.user.screen_name, 'id': tweetobject.id})
logging.tweet = tweet
In meinen Programmen mache ich dann nur noch:
Code: Alles auswählen
from logginghelper import logging
Das ganze geht also so weit aber sieht irgendwie sehr unpythonisch aus.
Da ich ja immer versuche meinen Code "richtig" zu schreiben und was zu lernen nun die Frage an euch.
Ist das hier der richtige Weg oder sollte ich das ganze anders machen?
Gibt es da überhaupt einen Weg das anders zu machen?
Schönen Abend euch allen!
p91