Форум сайта python.su
Написал статейку о моей практике логирования на любимом языке программирования.
Высказывайте свое “фи” :)
Офлайн
В свое время использовал такую конструкцию:
import sys import config def debug(*args): caller_function_name = sys._getframe().f_back.f_code.co_name try: caller_class_name = sys._getframe().f_back.f_locals['self'].__class__.__name__ except KeyError: caller_class_name = '' if config.DEBUG: print '[%s#%s]: %s' % (caller_class_name, caller_function_name, ' '.join(map(str, args))) if __name__ == '__main__': class AA(object): def bbb(self): debug('qqq') AA().bbb() # => [AA#bbb]: qqq
Офлайн
А можно разные типы уведомлений записывать в разные файлы ?
Офлайн
да. Если по иерархии - нухно вешать разные handlers:
getLogger('a').addHandler(FileHandler('a.txt')
getLogger('b').addHandler(FileHandler('b.txt')
Если по loglevel - нужно сделать свой handler, унаследовав его от Handler, FileHandler или еще какого подходящего и переопределить emit
Офлайн
Спасибо, Андрей.
Если кого то еще заинтересует подобный вопрос, то можно почитать здесь : http://docs.python.org/lib/multiple-destinations.html
Офлайн