Twiggy

Software captura de pantalla:
Twiggy
Detalles de software:
Versión: 0.4.4
Fecha de carga: 11 May 15
Promotor: Peter Fein
Licencia: Libre
Popularidad: 6

Rating: nan/5 (Total Votes: 0)

Twiggy es un proyecto en fase inicial de construir un paquete de registro más Pythonic.
Uso:
Hacer el trabajo de visualización:
>>> import sys; sys.stderr = sys.stdout
La configuración es sencilla
En su main.py:
>>> Twiggy importación
>>> Twiggy.quick_setup ()
mensajes de registro
>>> From twiggy import *
Interfaz principal es el registro de la magia:
>>> Ingrese #doctest: + ELLIPSIS

Funciona fuera de la caja, con niveles estándar:
>>> Log.DEBUG ('Usted no puede cuidar')
DEBUG: Es posible que no les importa
>>> Log.error ("OMFG! Pantalones en el fuego! ')
ERROR: OMFG! Pantalones en el fuego!
Es compatible con una variedad de cadenas de formato, el impago de nuevo estilo:
>>> Log.info ('me pongo {0} en mi {donde}', 'pantalones', donde = 'piernas')
INFO: me pongo los pantalones en las piernas
Viejo estilo funciona bien sin embargo:
>>> Log.options (style = 'ciento'). Info ('Me gusta% s', "bicicletas")
INFO: Me gustan las bicicletas
Como hacer las plantillas:
>>> Log.options (style = "dólar"). Info ('$ lo kill', lo que = 'Cars')
INFO: Coches matan
Usted puede nombrar a sus registradores:
>>> Mylog = log.name ('Alfredo')
>>> Mylog.debug ('hola')
DEBUG: alfredo: hola
Pero el nombre no tiene ninguna relación con el objeto; es sólo para uso humano:
>>> Mylog es log.name ('Alfredo')
Falso
Mensajes emiten
Emisores están débilmente acoplados:
>>> Twiggy.emitters #doctest: + ELLIPSIS
{'*': }
Puede establecer un min_level sobre emisores:
>>> twiggy.emitters ['*']. min_level = twiggy.Levels.INFO
>>> Log.DEBUG ("Ayuda, ayuda que estoy siendo suprimido")
>>> Log.info ("Aún no estoy bien muerto")
INFO: Yo todavía no estoy del todo muerto
Puedes realizar un filtrado de expresiones regulares, o con funciones arbitrarias:
>>> twiggy.emitters ['*']. filtro = ". * pantalones. *"
>>> Log.info ("Tengo mi {0} del", "pantalones")
INFO: Consiguió mis pantalones
>>> Log.info ("Tengo mi {0} en", "camisa")
Vamos a restablecer todos que:
>>> twiggy.emitters ['*']. filtro = True
>>> twiggy.emitters ['*']. min_level = twiggy.Levels.DEBUG
Mejor salida
Nuevas líneas se suprimen de forma predeterminada; que se puede apagar por mensaje:
>>> Log.info ('user ninput nannoys nus')
INFO: user ninput nannoys nus
>>> log.options (suppress_newlines = false) .info ("nosotros ndeal ')
INFO: nosotros
acuerdo
Las excepciones son prefijados. También se puede pasar exc_info. Utilice ' n' como prefijo para doblar en una sola línea:
>>> Try:
... 1/0
... Excepto:
... Log.trace ('error') advertencia ("¡Oh no ') #doctest.: + ELLIPSIS
ADVERTENCIA: oh noes
TRACE Rastreo (la mayoría de llamadas recientes última):
TRACE Archivo "", la línea 2, en
TRACE 1/0
TRACE ZeroDivisionError: división entera o módulo por cero
Método encadenamiento
Me gusta este estilo encadenado mucho.
>>> Log.name ('benito'). Info ('hola')
INFO: benito: hola
Hace que la tala estructurada fácil:
>>> log.fields (caminos = 42) .info ("Salir a caminar ')
INFO: caminos = 42: Salir a caminar
Atajo. Excelente para la recopilación de estadísticas en tiempo de ejecución.
>>> Log.struct (caminos = 42, delfines = 'agradecido')
INFO: delfines = agradecidos: caminos = 42:
Parcial de unión puede ser útil para aplicaciones web:
>>> Per_request_log = log.fields (request_id = '12345')
>>> Per_request_log.fields (filas = 100, el usuario = 'frank'). Info ('frobnicating base de datos')
INFO: request_id = 12345: filas = 100: user = franca: la base de datos frobnicating
>>> per_request_log.fields (bytes = 5678) .info ('enviar la página sobre los tubos')
INFO: bytes = 5678: request_id = 12345: enviar la página sobre los tubos
Encadenado estilo es impresionante:
>>> Campos log.name ('donjuan'). (Pantalones = 'sexy'). Info ("hola, {que} {quieren lo}?", Que = 'señoras, lo =' baile ')
INFO: donjuán: pantalones = sexy: hola, señoras quieren bailar?
Dynamic!
Cualquier función en args / campos son llamados y el valor sustituidas:
>>> os importación
>>> From twiggy.lib thread_name importación
>>> Thread_name ()
'TrenzadoPrincipal'
>>> log.fields (pid = os.getpid) .info ("Estoy en el hilo de {0}", thread_name) #doctest: + ELLIPSIS
INFO: pid = 1076: Estoy en TrenzadoPrincipal hilo
Esto puede ser útil con los madereros en parte con destino a, que vamos a hacer algunas cosas interesantes:
>>> ThreadTracker clase (objeto):
... Def __init __ (self, obj):
... Self .__ obj = obj
... # Un registrador parcialmente atado
... Self .__ log = log.name ("seguimiento"). Campos (obj_id = id (obj), hilo = thread_name)
... Self .__ Log.DEBUG ("comenzó el seguimiento")
... Def __getattr __ (self, attr):
... Self .__ Log.DEBUG ("visitada {0}", attr)
... Volver getattr (self .__ obj, attr)
...
>>> Clase Bunch (objeto):
... Pasar
...
>>> Foo = Bunch ()
>>> Foo.bar = 42
>>> Rastreado = ThreadTracker (foo)
DEBUG: perseguidor: obj_id = 14063980: hilo = TrenzadoPrincipal: comenzó el seguimiento
>>> Tracked.bar
DEBUG: perseguidor: obj_id = 14063980: hilo = TrenzadoPrincipal: bar visitada
42
>>> Enhebrado de importaciones
>>> T = threading.Thread (target = lambda: tracked.bar * 2, name = "TheDoubler")
>>> T.Start ()
DEBUG: perseguidor: obj_id = 14063980: hilo = TheDoubler: bar visitada
Si usted realmente desea registrar un exigible, repr () o envolverlo en lambda.
Optimizaciones
Como una optimización, un min_level se puede establecer en los madereros:
>>> Mylog.min_level = twiggy.Levels.INFO
>>> Mylog.info ("Usted ve esto")
INFO: alfredo: Usted ve esto
>>> Mylog.debug ("Esto es oculto")
También tienen un filtro que opera en format_spec. El caso de uso se está cerrando de manera eficiente fuera mensajes específicos en una biblioteca que está haciendo algo estúpido:
>>> Mylog.filter = lambda s: "chanchullos" no en s
>>> Mylog.info ("Inicio estupidez")
INFO: alfredo: estupidez partir
>>> For i in xrange (3): # para valores grandes de 3
... Mylog.info ("Me llaman travesuras!")
>>> Mylog.info ("End estupidez")
INFO: alfredo: Fin estupidez

Requisitos

  • Python

Otro software de desarrollador Peter Fein

Twiggy
Twiggy

12 Apr 15

Petapass
Petapass

11 May 15

Comentarios a la Twiggy

Comentarios que no se encuentran
Añadir comentario
A su vez en las imágenes!