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

Коментар не знайдено
додати коментар
Включіть картинки!