Twiggy

Screenshot Software:
Twiggy
Mga detalye ng Software:
Bersyon: 0.4.4
I-upload ang petsa: 11 May 15
Nag-develop: Peter Fein
Lisensya: Libre
Katanyagan: 1

Rating: nan/5 (Total Votes: 0)

marupok ay isang maagang yugto ng proyekto upang bumuo ng isang mas Pythonic package log in.
Paggamit ng:
Gumawa ng display sa trabaho:
>>> Import sys; sys.stderr = sys.stdout
Setup ay simple
Sa iyong main.py:
>>> Import marupok
>>> Twiggy.quick_setup ()
Pag-log Messages
>>> Mula marupok import *
Main interface ay ang mga magic log:
>>> Log #doctest: + elipsis

Ito ay gumagana sa labas ng kahon, gamit ang standard na antas:
>>> Log.debug ('Ikaw ay hindi maaaring pag-aalaga')
DEBUG: Ikaw ay hindi maaaring pag-aalaga
>>> Log.error ('OMFG! Pantalon sa sunog!')
ERROR: OMFG! Pantalon sa sunog!
Ito ay sumusuporta sa isang iba't ibang mga string ng format, defaulting sa mga bagong-style:
>>> Log.info ('isinusuot ko ang {0} sa aking {saan}', 'pantalon', kung saan = 'binti')
INFO: magsuot ako ng pantalon sa aking binti
Gumagana multa Old style kahit na:
>>> Log.options (style = 'porsyento'). Info ('Gusto ko ang% s', "bikes")
INFO: gusto ko bikes
Habang ginagawa mga template:
>>> Log.options (style = 'dollar'). Info ('$ ano pumatay', ano = 'Mga Kotse')
INFO: Kotse pumatay
Maaari mong pangalanan ang iyong logger:
>>> Mylog = log.name ('alfredo')
>>> Mylog.debug ('hello')
DEBUG: alfredo: hello
Ngunit ang mga pangalan ay walang kinalaman sa mga bagay; ito ay para lamang sa paggamit ng tao:
>>> Mylog ay log.name ('alfredo')
Huwad
nagpapalabas Messages
Emitters ay maluwag kaisa:
>>> Twiggy.emitters #doctest: + elipsis
{'*': }
Maaari kang magtakda ng min_level on Emitters:
>>> Twiggy.emitters ['*']. Min_level = twiggy.Levels.INFO
>>> Log.debug ("Help, tulong ako na pinigilan")
>>> Log.info ("pa Hindi ako masyadong patay")
INFO: pa Hindi ako masyadong patay
Maaari mong salain sa regexes, o sa di-makatwirang pag-andar:
>>> Twiggy.emitters ['*'] filter. = ". * Pantalon. *"
>>> Log.info ("May aking {0} on", "pantalon")
INFO: Got ang aking pantalon sa
>>> Log.info ("May aking {0} on", "shirt")
Sabihin i-reset ang lahat ng iyon:
>>> Twiggy.emitters ['*'] filter = True.
>>> Twiggy.emitters ['*']. Min_level = twiggy.Levels.DEBUG
Mas mahusay na output
Newlines ay pinigilan sa pamamagitan ng default; na maaaring naka-off per-message:
>>> Log.info ('user ninput nannoys nus')
INFO: user ninput nannoys nus
>>> Log.options (suppress_newlines = Maling) info (' namin ndeal')
INFO: namin
makitungo
Exceptions ay may prefix. Maaari ring ipasa exc_info. Gamitin ang ' n' bilang isang prefix sa fold sa isang solong linya:
>>> Subukan:
... 1/0
... Maliban sa:
... Log.trace ('error') babala ('oh noes') #doctest:. + Elipsis
BABALA: oh noes
TRACE Traceback (pinakahuling call huling):
TRACE File "", 2 linya, sa
TRACE 1/0
TRACE ZeroDivisionError: integer division o modulo sa pamamagitan ng zero
Paraan pagdudugtong
Gusto ko ito chained style ng maraming.
>>> Log.name ('benito'). Info ('hi there')
INFO: benito: hi there
Ito ay gumagawa ng balangkas ng pag-log madali:
>>> Log.fields (landas = 42) info ('Pupunta para sa isang lakad')
INFO: landas = 42: Pagpunta para sa isang lakad
Short cut. Mahusay para sa mga istatistika ng runtime pagtitipon.
>>> Log.struct (landas = 42, dolphin = 'nagpapasalamat')
INFO: mga dolphin = nagpapasalamat: landas = 42:
Bahagyang umiiral na ay maaaring maging kapaki-pakinabang para sa webapps:
>>> Per_request_log = log.fields (request_id = '12345')
>>> Per_request_log.fields (mga hilera = 100, user = 'lantad'). Info ('frobnicating database')
INFO: request_id = 12345: hilera = 100: user = lantad: frobnicating database
>>> Per_request_log.fields (bytes = 5678) info ('pagpapadala page over tubes')
INFO: bytes = 5678: request_id = 12345: pagpapadala page over tubes
Chained estilo ay awesome:
>>> ('Sexy' pantalon =). Info log.name ('donjuan'). Field ("hello, {sino} nais na {ano}?", Na = 'ladies', ano = 'dance')
INFO: donjuan: pantalon = sexy: hello, gusto ladies sa sayaw?
Dynamic!
Anumang mga function sa args / patlang ay tinatawag at substitued mga halaga:
>>> Import os
>>> Mula twiggy.lib import thread_name
>>> Thread_name ()
'MainThread'
>>> Log.fields (pid = os.getpid) info ("ako sa thread na {0}", thread_name) #doctest: + elipsis
INFO: pid = 1076: ako sa thread MainThread
Ito ay maaaring maging kapaki-pakinabang na may bahagyang-bound logger, na ipaalam ang gawin sa amin ang ilang mga cool na bagay-bagay:
>>> Klase ThreadTracker (object):
... Def __init __ (self, obj):
... Self .__ obj = obj
... # Isang bahagyang nakasalalay magtotroso
... Self .__ log = log.name ("tracker"). Patlang (obj_id = id (obj), thread = thread_name)
... Self .__ log.debug ("nagsimula sa pagsubaybay")
... Def __getattr __ (self, attr):
... Self .__ log.debug ("na-access ang {0}", attr)
... Return getattr (self .__ obj, attr)
...
>>> Klase Bunch (object):
... Ipasa
...
>>> Foo = Bunch ()
>>> Foo.bar = 42
>>> Sinusubaybayan = ThreadTracker (foo)
DEBUG: tracker: obj_id = 14063980: thread = MainThread: nagsimula sa pagsubaybay
>>> Tracked.bar
DEBUG: tracker: obj_id = 14063980: thread = MainThread: access bar
42
>>> Import threading
>>> T = threading.Thread (target = lambda: tracked.bar * 2, name = "TheDoubler")
>>> T.start ()
DEBUG: tracker: obj_id = 14063980: thread = TheDoubler: access bar
Kung gusto mo talagang mag-a callable, repr () ito o ibalot ito sa lambda.
Optimizations
Bilang isang pag-optimize, isang min_level maaaring itakda sa logger:
>>> Mylog.min_level = twiggy.Levels.INFO
>>> Mylog.info ("tingnan mo ito")
INFO: alfredo: tingnan mo ito
>>> Mylog.debug ("Ito ay hidden")
Sila rin ay kumuha ng isang filter na nagpapatakbo sa format_spec. Ang paggamit kaso ay mahusay shutting off tiyak na mga mensahe sa isang library na kung saan ay paggawa ng isang bagay tangang:
>>> Mylog.filter = lambda s: "shenanigans" hindi sa s
>>> Mylog.info ("Simula kalokohan")
INFO: alfredo: Simula kalokohan
>>> Para sa ako sa xrange (3): # para sa mga malalaking halaga ng 3
... Mylog.info ("Tinatawag kong mga kalokohan!")
>>> Mylog.info ("End kalokohan")
INFO: alfredo: Dulo kalokohan

Kinakailangan :

  • sawa

Iba pang mga software developer ng Peter Fein

Twiggy
Twiggy

12 Apr 15

Petapass
Petapass

11 May 15

Mga komento sa Twiggy

Mga Komento hindi natagpuan
Magdagdag ng komento
I-sa mga imahe!