Lunkpy

Logado poco ortodoxo para Python
Descargar ahora

Lunkpy Clasificación y resumen

Anuncio publicitario

  • Rating:
  • Licencia:
  • BSD License
  • Precio:
  • FREE
  • Nombre del editor:
  • Michal Hordecki
  • Sitio web del editor:
  • http://github.com/MHordecki

Lunkpy Etiquetas


Lunkpy Descripción

Registro no ortodoxo para Python LOGPY es una alternativa para las instalaciones estándar de registro de Python, basadas libremente en el log5 de Lisp. Se basa en principios de beso, por lo tanto, quería que fuera lo más transparente posible. La principal diferencia en comparación con la tala de STDLIB es la arquitectura basada en las etiquetas. En el registro, cada registro ha asignado un cierto nivel (ya sea depuración, error, etc.). Eso es todo. LOGYPY, por otro lado, etiquetas deportivas: puede colocar cuerdas cortas a cada mensaje. La etiqueta puede representar una variedad de cosas: nivel de severidad, nombre del módulo o alguna categorización de registro personalizada.Logpy requiere Python 2.6 o superior. Funciona a la perfección en Python 3 también (de hecho, se ha desarrollado con PY3K en mente y luego respaldado a Python 2.6). Engetting Cineting Logpy está muerto simple: desde Logpy Import Logpyimport Syslog = LOGPY () LOG.ADD_OUTPUT (SYS.STDERR.WRITE ) Registro ('Depuración') ('Hello World!') ¡Voila! Las instancias de LOGYPY se llaman. Para generar un registro, registro de llamadas "dos veces", en la primera llamada, pase todas las etiquetas del registro, y todo lo que pasa a la segunda se considerará parte del mensaje. El ejemplo producirá registros de salida a la salida de error estándar. Fácil, ¿no? Bajo la capucha tiene algunas capas de abstracción: 1. LOGYPY: acepta los datos del usuario, los combina en una instancia de mensaje y los pasa a todas las salidas. 2. Salida: filtra los mensajes según algunas condiciones predefinidas, y si el mensaje los pasa a todos, está formateado por el formateador y luego se pasa a la salida real. 3. FORFART: toma el mensaje y los formatos IT;) (en la implementación estándar usa String.Format para el trabajo). 4. Salida real: un llamado que, por ejemplo, emite la salida de la formación a la pantalla. Todas las capas / objetos son las tareas de las tareas de las tareas de Filterput con múltiples salidas, es probable que desee filtrar algunos registros en cada uno de ellos. Hay soporte para eso: log = logypy () log.add_utput (my_output, filtro = lambda m: 'error' en m.tags) # equivalente a: log.add_output (my_output, filter = ) Como puede ver, los filtros son las calificaciones, tomando un objeto de mensaje como argumento y devolviendo BOOL. Una lista de los filtros múltiples puede ser proporcionada por una lista. Custom Formatingyou puede personalizar el formato reemplazando la cadena de formato o reemplazando el objeto de formato por completo. Su elección.Custom Format StringThis Uno cumplirá con el 90% de sus necesidades. Puede cambiar su cadena de formato con el argumento de la palabra clave al método ADDP_OUTPUT de LOGPY (también es posible cuando se instancie directamente los objetos de salida): log.add_output (..., Formatter = '¡Mi cadena de formato personalizado!') Al procesar un mensaje, formato de método de la cadena se llamará con los siguientes argumentos predefinidos: * FECHA - OBJETO DE DATETIMIENTO * Etiquetas - Lista delimitada en el espacio Lista de etiquetas (cadena) * Args - Lista de argumentos en el mensaje * Kwargs - DICT DE ARGUMENTOS DE KEWN EN EL MENSAJE * MENSAJE - El objeto de mensaje real. Todos los argumentos anteriores son en realidad solo un azúcar sintáctica, ya que son todos los atributos de este objeto. Formato DEFAULT String se ve así: {Fecha}: {Etiquetas}: {args} {kwargs} \ nDon no olvides poner una nueva línea en El final, o sus registros se verán lisiados. Trabajo con múltiples módulos, puede ayudarse a sí mismo mientras se usa LOGYPY con múltiples módulos predefinidos algunas de las etiquetas: # principal modulelog = LOGPY () # NIÑOS MODULEIMPORT MAINMODULELELOG = mainmodule.log ('Module: Childmodule ', Curry = True) # Ahora: Log (' Depuración ') (' Hello World! ') # es un tono equivalente (' Módulo: ChildModule ',' Depuración ') (' Hello World ') Casas a medida que desea el Full Power: puede deshacerse del formateador predeterminado: log.add_output (..., formatter = my_formatter_object) Los objetos de formularios deben cumplir con el protocolo simple: Formatterio de clase: Def __call __ (Mensaje: Mensaje) -> Algo razonable: Mensaje de PassClass : etiquetas = set (str) args = [] # Pasado por el usuario Kwargs = {} # Pasado por la fecha de usuario = DateTime.DateTime (no tengo idea Wh Atence, si hay una notación formal estándar para describir los protocolos en Python, además de las cosas como Zope.interface. Espero que mis divagaciones sean claras.) Donde algo razonable significa: todo lo que se aceptará por la salida de la salida (sonidos un poco tontos): generalmente significa STR, pero no siempre. OBJETIVO DE PROPATABILIDAD COMUSTOM Estás dispuesto a desechar el 50% de la LOC de LOGPY, no dude en hacerlo: log.add_raw_output (my_customized_output_object) que vale la pena mencionar es el hecho de que logpy.add_output es solo una envoltura para: log.add_output (...) # equivalente tolog.add_raw_output (salida (. ..)) El protocolo de salida se ve como sigue: SALIDA DE CLASE: DEF __CALL __ (Mensaje: Mensaje): Pasando otras palabras: Se le llamará con cada registro emitido por el usuario. Nota: Por favor, trate los mensajes como objetos inmutables - están siendo reutilizado para todas las salidas. SafetyLogpy emplea alguna seguridad básica de hilo; Un hilo. Se utiliza en __call__ método de logy. Se puede reemplazar fácilmente: desde la importación de subprocesos rocklog = logy () log.lock = rlock () Requisitos: · Python


Lunkpy Software relacionado