Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 22, 2007 19:33:27

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Python logging

Написал статейку о моей практике логирования на любимом языке программирования.
Высказывайте свое “фи” :)



Офлайн

#2 Сен. 25, 2007 01:12:29

xonix
От:
Зарегистрирован: 2006-12-31
Сообщения: 38
Репутация: +  0  -
Профиль   Отправить e-mail  

Python logging

В свое время использовал такую конструкцию:

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

Преимущество в том, что при логгировании сами определяются имя функции и класса



Офлайн

#3 Окт. 29, 2007 11:39:05

Yurietc
От:
Зарегистрирован: 2007-07-18
Сообщения: 112
Репутация: +  0  -
Профиль   Отправить e-mail  

Python logging

А можно разные типы уведомлений записывать в разные файлы ?



Офлайн

#4 Окт. 29, 2007 12:27:43

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Python logging

да. Если по иерархии - нухно вешать разные handlers:
getLogger('a').addHandler(FileHandler('a.txt')
getLogger('b').addHandler(FileHandler('b.txt')

Если по loglevel - нужно сделать свой handler, унаследовав его от Handler, FileHandler или еще какого подходящего и переопределить emit



Офлайн

#5 Окт. 30, 2007 09:54:41

Yurietc
От:
Зарегистрирован: 2007-07-18
Сообщения: 112
Репутация: +  0  -
Профиль   Отправить e-mail  

Python logging

Спасибо, Андрей.
Если кого то еще заинтересует подобный вопрос, то можно почитать здесь : http://docs.python.org/lib/multiple-destinations.html



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version