Twiggy

צילום מסך תוכנה:
Twiggy
פרטי תוכנה:
גרסה: 0.4.4
טען תאריך: 11 May 15
מפתחים: Peter Fein
רשיון: ללא תשלום
פופולריות: 1

Rating: nan/5 (Total Votes: 0)

טוויגי הוא פרויקט בשלב מוקדם לבנות חבילת רישום של נחש ארסי יותר.
שימוש:
לעשות את עבודת תצוגה:
>>> 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 (style = "אחוזים"). מידע ("אני אוהב את% s '," אופניים ")
פרטים: אני אוהב את אופניים
כלעשות תבניות:
>>> Log.options (style = 'דולר'). מידע ('$ מה להרוג', מה = 'מכוניות')
פרטים: מכוניות להרוג
אתה יכול שם חוטבי העצים שלך:
>>> 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 ("אני לא ממש מת עדיין")
פרטים: אני לא ממש מת עדיין
שלך לסנן על regexes, או עם פונקציות שרירותיות:
>>> Twiggy.emitters ['*']. מסנן = ". * מכנסיים. *"
>>> Log.info ("יש לי {0} על", "מכנסיים")
פרטים: יש לי מכנסיים ב
>>> Log.info ("יש לי {0} עליי", "החולצה")
בואו לאפס את כל ש:
>>> Twiggy.emitters ['*']. מסנן = True
>>> Twiggy.emitters ['*']. Min_level = twiggy.Levels.DEBUG
פלט טוב יותר
שורות החדשות מודחקות כברירת מחדל; שיכול להיות כבוי לכל הודעה:
>>> Log.info ("משתמש ninput nannoys Nus ')
פרטים: ידידותי ninput nannoys Nus
>>> Log.options (suppress_newlines = False) .info ("אנחנו ndeal ')
פרטים: אנחנו
עסקה
חריגים קידומת. גם יכול לעבור exc_info. השתמש " n" כקידומת לקפל לתוך שורה אחת:
>>> לנסות:
... 1/0
... למעט:
... Log.trace ("שגיאה") אזהרה ('אוי לא') #doctest:. + שלוש נקודות
הלאווים הו: אזהרה
TRACE Traceback (רוב השיחה האחרונה שעברה):
קובץ זכר "", קו 2, ב
TRACE 1/0
TRACE ZeroDivisionError: חלוקת מספר שלם או מודולו על ידי אפס
שיטת שרשור
אני אוהב את סגנון כבול זה הרבה.
>>> Log.name ("בניטו"). מידע ('היי')
פרטים: בניטו: היי שם
זה גורם רישום מובנה קל:
>>> Log.fields (נתיבים = 42) .info ("הולך לטיול")
פרטים: נתיבים = 42: הולכים לטיול
קיצור. נהדר עבור איסוף נתונים סטטיסטיים זמן ריצה.
>>> Log.struct (נתיבים = 42, = דולפינים "אסיר תודה")
פרטים: דולפינים = אסיר תודה: נתיבים = 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 ("שליחת דף מעל צינורות ')
פרטים: בתים = 5678: REQUEST_ID = 12345: שליחת דף מעל צינורות
סגנון משורשר הוא מדהים:
>>>. מידע שדות log.name ('חואן"'). (= מכנסיים 'סקסי') ("שלום, {} שרוצה {} מה?", ש= 'נשים', מה = 'ריקוד')
פרטים: חואן": מכנסיים = סקסי: שלום, גבירותיי רוצים לרקוד?
דינמי!
כל פונקציות בargs / שדות נקראות וsubstitued הערך:
>>> OS יבוא
>>> מthread_name יבוא twiggy.lib
>>> Thread_name ()
"MainThread '
>>> Log.fields (PID = os.getpid) .info ("אני בחוט {0}", thread_name) #doctest: + שלוש נקודות
פרטים: PID = 1,076: אני בMainThread חוט
זה יכול להיות שימושי עם חוטבי עצים באופן חלקי בכריכה, שבואו לעשות כמה דברים מגניבים:
>>> ThreadTracker כיתה (אובייקט):
... Def __init __ (עצמי, obj):
... עצמי .__ obj obj =
... # וגר מחויב באופן חלקי
... עצמי .__ להיכנס = log.name ("גשש"). שדות (= id obj_id (obj), חוט = thread_name)
... Log.debug .__ העצמי ("התחיל מעקב")
... Def __getattr __ (עצמי, attr):
... Log.debug .__ העצמי ("גישה {0}", attr)
... Getattr תמורה (עצמי .__ obj, attr)
...
>>> כיתת חבורה (אובייקט):
... עובר
...
>>> Foo = חבורה ()
>>> Foo.bar = 42
>>> = ThreadTracker מעקב (foo)
DEBUG: גשש: obj_id = 14063980: = MainThread נושא: התחיל מעקב
>>> Tracked.bar
DEBUG: גשש: obj_id = 14063980: = MainThread חוט: בר נצפה
42
>>> השחלה יבוא
>>> T = threading.Thread (target = מבדה: tracked.bar * 2, שם = "TheDoubler")
>>> T.start ()
DEBUG: גשש: obj_id = 14063980: = TheDoubler חוט: בר נצפה
אם אתה באמת רוצה להיכנס callable, repr () או לעטוף אותו למבדה.
אופטימיזציות
כאופטימיזציה, min_level יכול להיות מוגדר על חוטבי עצים:
>>> Mylog.min_level = twiggy.Levels.INFO
>>> Mylog.info ("אתה רואה את זה")
פרטים: אלפרדו: אתה רואה את זה
>>> Mylog.debug ("זה נסתר")
הם גם לקחת מסנן שפועל על format_spec. במקרה השימוש הוא כיבוי ביעילות את הודעות ספציפיות בספרייה שהוא עושה משהו טיפשי:
>>> Mylog.filter = מבדה של: "תעלולים" לא בים
>>> Mylog.info ("החל טיפשות")
פרטים: אלפרדו: טיפשות החל
>>> לי בטווח- x (3): # לערכים גדולים של 3
... Mylog.info ("אני קורא תעלולים!")
>>> Mylog.info ("סוף הטיפשות")
פרטים: אלפרדו: טיפשות הסוף

דרישות :

  • פייתון

תוכנות אחרות של יזם Peter Fein

Twiggy
Twiggy

12 Apr 15

Petapass
Petapass

11 May 15

תגובות ל Twiggy

תגובות לא נמצא
להוסיף הערה
הפעל את התמונות!