Estoy usando PyCharm para desarrollar un GAE de la aplicación en Mac OS X. hay alguna forma de visualización de los colores en la ejecución de la consola de PyCharm?

He establecido un controlador de a la salida de los colores en formato ansi. Entonces, he añadido el controlador:

LOG = logging.getLogger()
LOG.setLevel(logging.DEBUG)
for handler in LOG.handlers:
    LOG.removeHandler(handler)

LOG.addHandler(ColorHandler())

LOG.info('hello!')
LOG.warning('hello!')
LOG.debug('hello!')
LOG.error('hello!')

Pero el color es el mismo.

PyCharm el registro de salida colores

EDICIÓN:

Una respuesta de JetBrains issue tracker: Cambiar la línea 55 de la plantilla de sys.stderr a sys.stdout. stderr corriente es siempre de color de color rojo, mientras que stdout no.

Ahora los colores se muestran correctamente.

  • ¿Qué tipo de PyCharm y qué versión es?
  • PyCharm Pro v3.0.2 para Mac OS X
  • El fragmento de código proporcional se fue sin conexión (como se hizo xsnippet.org tal vez?) – ¿podría usted explicar de dónde has cambiado sys.stderr a sys.stdout?
  • En la definición de gestor de su registro conf puede agregar simplemente 'stream': sys.stdout para lograr este
  • Consulte este MODO de respuesta
InformationsquelleAutor dablak | 2013-12-02

7 Comentarios

  1. 26

    PyCharm no soporta esa función de forma nativa, sin embargo, usted puede descargar el Grep complemento de la Consola y establecer los colores como quieras.

    Aquí está una captura de pantalla:
    http://plugins.jetbrains.com/files/7125/screenshot_14104.png (el enlace está muerto)

    Espero que te ayude un poco 🙂 aunque no completamente coloreada de la consola, pero es un paso hacia ella.

    • Este plugin es muy bueno! Justo lo que estaba buscando. Me gusta mucho el «Filtro» opción así.
    • Plugin ES impresionante. Resuelto esto para mí.
  2. 25

    Como de, al menos, PyCharm 2017.2 usted puede hacer esto mediante la habilitación de:

    Ejecutar | Editar las Configuraciones de… | Configuración | Emular terminal de salida de la consola

    PyCharm el registro de salida colores

    PyCharm el registro de salida colores

    • Esto no funciona para mí – ¿extraño?
    • Yo estaba usando el coloredlogs el paquete en esta captura de pantalla.
    • Tenga en cuenta que la indicada en la casilla de verificación sólo se muestra si usted tiene «Python» seleccionado en la vista de lista. Ejecución de otro tipo no tienen esta opción.
  3. 7

    Tarde a la fiesta, pero nadie con este problema, aquí está la solución que funcionó para mí:

    import logging
    import sys
    logging.basicConfig(stream=sys.stdout, level=logging.DEBUG)

    Este vino de esta respuesta

  4. 1

    Lo resuelto por mí (en PyCharm 2017.2) iba a Preferences -> Editor -> Color Scheme -> Console Colors y cambiar el color de Console -> Error output. Por supuesto, esto también cambia el error de color, pero al menos no ver la roja todo el tiempo…

  5. 0

    Descubrí la siguiente solución. Al parecer Pycharm redirige sys.stdout. Desde el documentación del módulo sys:

    sys.__stdin__
    sys.__stdout__
    sys.__stderr__

    Estos objetos contienen los valores originales de stdin, stderr y stdout
    en el inicio del programa. Se utilizan durante la finalización, y
    podría ser útil para imprimir a la actual de la secuencia estándar no importa si
    el sys.std* objeto ha sido desviado.

    También se puede utilizar para restaurar los archivos reales conocidos archivo de trabajo
    los objetos en caso de que hayan sido sobrescritos con un objeto roto.
    Sin embargo, la mejor manera de hacer esto es para guardar explícitamente la
    anterior secuencia antes de reemplazarlo, y restaurar el objeto guardado.

    Por lo tanto, para resolver este problema usted puede redirigir la salida a sys.__stdout__. Ejemplo de configuración de mi log_config.yml:

    console:
      class: logging.StreamHandler
      level: DEBUG
      stream: "ext://sys.__stdout__"
      formatter: colorFormatter
  6. 0

    PyCharm 2019.1.1 (Windows 10, 1709) – se instalarán fragmento de como – funciona correctamente.

    PyCharm el registro de salida colores

    Error: setFormatter – no funciona.

    Revisión: hacer el cambio en la línea 67 y deshacerse en línea 70-71 (sin formato de controlador de añadir).

    self.stream.write(record.msg + "\n", color)

    a

    self.stream.write(self.format(record) + "\n", color)

    Línea 70-71 puede desplazarse manual de ejecución del archivo de construcción para guardar la prueba de capacidad:

    if __name__ == "__main__":
        logging.getLogger().setLevel(logging.DEBUG)
        logging.getLogger().addHandler(ColorHandler())
    
        logging.debug("Some debugging output")
        logging.info("Some info output")
        logging.error("Some error output")
        logging.warning("Some warning output")

    En comparación con el estándar de StreamHandler:

    import logging
    import logging_colored
    
    log_format = logging.Formatter("[%(threadName)-15.15s] [%(levelname)-5.5s]  %(message)s")
    logger = logging.getLogger('Main')
    logger.setLevel(logging.DEBUG)
    
    console = logging.StreamHandler()
    console.setFormatter(log_format)
    logger.addHandler(console)
    
    console = logging_colored.ColorHandler()
    console.setFormatter(log_format)
    logger.addHandler(console)
    ...

    PyCharm el registro de salida colores

  7. 0

    Sept. 2019: PyCharm Comunidad 2019.1

    PyCharm de color todos los registros incluida la información de depuración en rojo.

    Th resultado de todo esto es: no es un PyCharm problema, esta es la forma en que el defecto logging está configurado.
    Todo lo escrito a sys.stderr es de color rojo por PyCharm.
    Cuando se utiliza StreamHandler() sin argumentos, la corriente de defecto es sys.stderr.

    Para llegar no de color de los registros de la espalda, especificar logging.StreamHandler(stream=sys.stdout) en configuración básica como esta:

    logging.basicConfig(
        level=logging.DEBUG,
        format='[%(levelname)8s]:  %(message)s',
        handlers=[
            logging.FileHandler(f'{os.path.basename(__file__)}.log'),
            logging.StreamHandler(sys.stdout),
        ])

    o ser más detallado:

    logging.getLogger().addHandler(logging.StreamHandler(stream=sys.stdout))

    Esta solucionado mi rojo PyCharm registros.

Dejar respuesta

Please enter your comment!
Please enter your name here