Twiggy

Скриншот программы:
Twiggy
Детали программы:
Версия: 0.4.4
Дата загрузки: 11 May 15
Разработчик: Peter Fein
Тип распространения: Бесплатная
Популярность: 6

Rating: nan/5 (Total Votes: 0)

Твигги является ранней стадии проекта, чтобы построить более Pythonic пакет протоколирования.
<Сильный> Применение:
Сделать дисплея работу:
>>> импортные SYS; sys.stderr = sys.stdout
Установка проста
В вашем main.py:
>>> Импорта Твигги
>>> Twiggy.quick_setup ()
Лесозаготовительные сообщения
>>> От импорта Твигги *
Главная интерфейс магия журнала:
>>> Войти #doctest + Многоточие
<Объект twiggy.Logger.Logger на 0x ...>
Он работает из коробки, используя стандартные уровни:
>>> Log.debug ('Вы не можете заботиться »)
DEBUG: Вы можете не заботиться
>>> Log.error ('OMFG! Брюки в огне! ")
ОШИБКА: OMFG! Брюки в огне!
Он поддерживает различные строк формата, по умолчанию в новом стиле:
>>> Log.info ("Я ношу {0} {на моем где} ',' брюки ', где =' 'ноги)
ИНФОРМАЦИЯ: я ношу брюки на ногах
Старый стиль отлично работает, хотя:
>>> Log.options (стиль = "процентов"). Информация ("Мне нравится% S '," велосипеды ")
ИНФОРМАЦИЯ: Мне нравится велосипеды
Как сделать шаблоны:
>>> Log.options (стиль = "доллар"). Информация ('$, что убийство ", то, что =' Автомобили ')
ИНФОРМАЦИЯ: Автомобили убить
Вы можете назвать свои регистраторы:
>>> MyLog = log.name ("Альфредо")
>>> Mylog.debug ("привет")
DEBUG: Альфредо: Привет
Но название не имеет никакого отношения к объекту; это просто для человека:
>>> MyLog является log.name ("Альфредо")
Ложный
излучающие сообщения
Излучатели слабо связаны:
>>> Twiggy.emitters #doctest + Многоточие
{'*': <Объект twiggy.Emitter.Emitter на 0x ...>}
Вы можете установить на min_level излучателей:
>>> twiggy.emitters ['*']. min_level = twiggy.Levels.INFO
>>> Log.debug ("Помощь, помощь я подавляется")
>>> Log.info ("Я не совсем еще жив")
ИНФОРМАЦИЯ: Я не совсем еще жив
Вы можете фильтровать по регулярных выражений, или с произвольными функциями:
>>> twiggy.emitters ['*']. фильтр = ". * брюки. *"
>>> Log.info ("Got My {0}", "штаны")
ИНФОРМАЦИЯ: Получил мои штаны
>>> Log.info ("Получил мой {0} на", "рубашка")
Давайте сбросить все, что:
>>> twiggy.emitters ['*']. фильтр = True
>>> twiggy.emitters ['*']. min_level = twiggy.Levels.DEBUG
<Сильный> Лучше выхода
Символы новой строки подавляются по умолчанию; что может быть отключен на-сообщения:
>>> Log.info ("пользователь NINPUT nannoys Нусь)
ИНФОРМАЦИЯ: пользователь NINPUT nannoys СНУ
>>> log.options (suppress_newlines = False) .info ("мы ndeal")
ИНФОРМАЦИЯ: мы
сделка
Исключения префикс. Может также пройти exc_info. Используйте ' п' в качестве префикса сложить в одну линию:
>>> Попытка обновить:
... 1/0
... За исключением:
... Log.trace ('Ошибка') предупреждение («О голосующие") #doctest.: + Многоточие
ПРЕДУПРЕЖДЕНИЕ: о голосующие
TRACE Traceback (самый последний вызов последнего):
Файл трассировки "", строка 2, в
TRACE 1/0
TRACE ZeroDivisionError: целочисленное деление по модулю или на ноль
<Сильный> Метод сцепление
Мне нравится этот стиль прикованный много.
>>> Log.name ("Бенито"). Информация ("привет там")
ИНФОРМАЦИЯ: Бенито: привет есть
Это делает структурированную регистрацию просто:
>>> log.fields (дорожки = 42) .info ("Отправляясь на прогулку")
INFO: пути = 42: Выход на прогулку
Быстрый доступ. Отлично подходит для сбора статистики выполнения.
>>> Log.struct (дорожки = 42, дельфины = 'благодарны')
INFO: дельфины = благодарные: пути = 42:
Частичное связывание может быть полезным для WebApps:
>>> Per_request_log = log.fields (request_id = '12345')
>>> Per_request_log.fields (строки 100 = пользователь = 'откровенный'). Информация ('frobnicating базы данных »)
ИНФОРМАЦИЯ: request_id = 12345: ряды = 100: пользователь = откровенны: frobnicating базы данных
>>> per_request_log.fields (байт = 5678) .info ('отправке страницу по трубам ")
INFO: байт = 5678: request_id = 12345: отправка страницу по трубам
Прикованный стиль является удивительным:
>>> ('Сексуальная' брюки =). Информация log.name ('donjuan'). Поля ("привет, {}, которые хотят, чтобы то, что {}?", Который = 'дамы, то, что =' танец ')
ИНФОРМАЦИЯ: donjuan: брюки = сексуальный: привет, дамы хотят танцевать?
<Сильный> Динамический!
Любые функции в аргументы / полей называются и значение замещенные:
>>> импорт OS
>>> От импорта twiggy.lib thread_name
>>> Thread_name ()
"MainThread"
>>> log.fields (PID = os.getpid) .info ("Я в теме {0}", thread_name) #doctest: + Многоточие
ИНФОРМАЦИЯ: PID = 1076: Я в потоке MainThread
Это может быть полезно при частично связанных лесорубов, которое позволит нам сделать некоторые интересные вещи:
>>> Класс ThreadTracker (объект):
... Def __init __ (сам, объект):
... Сам .__ OBJ OBJ =
... # Частично связаны регистратор
... Сам .__ войти = log.name ("трекер"). Поля (obj_id = ID (объект), резьба = thread_name)
... Сам .__ log.debug ("начала отслеживания")
... Def __getattr __ (сам, атр):
... Сам .__ log.debug ("доступ {0}", атр)
... Возврат GetAttr (само .__ OBJ, атр)
...
>>> Класс Букет (объект):
... Пройти
...
>>> Foo = Букет ()
>>> Foo.bar = 42
>>> Отслеживаются = ThreadTracker (Foo)
DEBUG: трекер: obj_id = 14063980: Тема = MainThread: начала отслеживания
>>> Tracked.bar
DEBUG: трекер: obj_id = 14063980: Тема = MainThread: доступ бар
42
>>> Импорта резьбы
>>> Т = threading.Thread (цель = лямбда: tracked.bar * 2, имя = "TheDoubler")
>>> T.start ()
DEBUG: трекер: obj_id = 14063980: Тема = TheDoubler: доступ бар
Если вы действительно хотите, чтобы войти вызываемый, Repr () его или обернуть его в лямбда.
<Сильный> Оптимизация
В целях оптимизации, min_level может быть установлен на лесорубов:
>>> Mylog.min_level = twiggy.Levels.INFO
>>> Mylog.info ("Вы видите это")
ИНФОРМАЦИЯ: Альфредо: Вы видите это
>>> Mylog.debug ("Это скрытый")
Они также взять фильтр, который работает на format_spec. Прецедент эффективно отключения конкретных сообщений в библиотеки, которая делает что-то глупое:
>>> Mylog.filter = лямбда с: "махинации" не с
>>> Mylog.info ("Запуск глупость")
ИНФОРМАЦИЯ: Альфредо: Начиная глупость
>>> Для я в xrange (3): # для больших значений 3
... Mylog.info ("Я призываю махинации!")
>>> Mylog.info ("End глупость")
ИНФОРМАЦИЯ: Альфредо: Конец глупости

Требования:

  • Python

Другие программы разработчика Peter Fein

Petapass
Petapass

11 May 15

Twiggy
Twiggy

12 Apr 15

Комментарии к Twiggy

Комментарии не найдены
добавить комментарий
Включите картинки!