es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

use topology.name en lugar de storm.id en la configuración de log4j2 de Apache Storm

En Apache Storm, los registros de los artefactos de los workers se crean para las diferentes topologías con un identificador de tormenta (nombre de topología + identificador único). Esto dificulta encontrar los registros más recientes. Entonces, en lugar de usar storm.id, ¿cómo podemos usar la configuración topology.name?
Configuración del archivo worker.xml:
Me gustaría usar algo como

fileName="${sys:workers.artifacts}/${sys:topology.name}/${sys:logfile.name}"

en lugar de lo predeterminado

fileName="${sys:workers.artifacts}/${sys:storm.id}/${sys:worker.port}/${sys:logfile.name}"

He intentado esto, sin embargo, el directorio de registro creado es como si este parámetro estuviera indefinido:


<h1>ls</h1> <p>${sys:topology.name}

¿Alguien puede ayudar?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Como experto en TI especializado en log4j2 y Apache Storm, el problema de la generación de registros de workers-artifacts para diferentes topologías con el ID de tormenta (nombre de la topología + ID único) que dificulta encontrar los registros más recientes se puede solucionar utilizando la configuración topology.name en lugar de storm.id.

    Para lograr esto, se puede agregar lo siguiente a la configuración worker.xml:

    fileName="${sys:workers.artifacts}/${sys:topology.name}/${sys:logfile.name}"
    

    Esto reemplazará la convención de nomenclatura de archivo de registro predeterminada:

    fileName="${sys:workers.artifacts}/${sys:storm.id}/${sys:worker.port}/${sys:logfile.name}"
    

    Sin embargo, es importante tener en cuenta que se crea un directorio de registro en el formato ${sys:topology.name} porque el parámetro está indefinido. Para resolver esto, la propiedad del sistema correspondiente debe definirse ya sea en el archivo worker.xml o en la línea de comandos antes de iniciar el proceso del trabajador. Por ejemplo, la opción de línea de comandos para definir la propiedad sería:

    -Dtopology.name=miNombreDeTopología
    

    Donde miNombreDeTopología es el nombre de la topología que se está utilizando. Una vez que se define la propiedad, se generarán registros en la ubicación de archivo correcta con la convención de nomenclatura correcta basada en el nombre de la topología en lugar del ID de tormenta.

Comments are closed.