Napisałem kilka skryptów z biegiem czasu i jestem w trakcie refatorowania skryptów, aby zachować kod DRY. Obecnie używam coś wzdłuż tych linii w różnych scenariuszy:Python: poprawny sposób logowania do tego samego pliku z różnych modułów.
if __name__ == '__main__':
logger = logging.getLogger('dbinit')
hdlr = logging.FileHandler('/var/logs/tmp/foo.log')
formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s')
hdlr.setFormatter(formatter)
logger.addHandler(hdlr)
logger.setLevel(logging.WARNING)
Zamiast powtarzać to w każdym skrypcie (czyli „moduł”), chciałbym mieć to rejestrator inicjalizacji zrobić jeden gdzieś i dostępne przez różne skrypty (Hmm, może owinąć klasę singleton?).
Jeśli nie mogę tego zrobić (tj umieścić kod inicjalizacji rejestrator w jednym module core), zakładam, że za pomocą tej samej nazwy pliku dziennika w logging.FileHandler() rozmowy, różne skrypty napisze do tego samego pliku.
Czy to założenie jest prawidłowe?
Ostatnia, ale nie najmniej ważna, jaka jest najlepsza praktyka (np. Pythonic) sposób rozwiązania tego problemu?
related: [kwestii rejestrowania Pythona z wielu modułów] (http://stackoverflow.com/questions/7341538/) –
Powiązane: [Python: moduł logowania - globalnie] (http://stackoverflow.com/questions/7621897/) –