Vk-io: No encuentro cómo adjuntar un registrador personalizado

Creado en 12 dic. 2020  ·  8Comentarios  ·  Fuente: negezor/vk-io

¿Qué hiciste?

Intente encontrar una sección en la documentación)

Qué esperabas que sucediera?

Esta ausente

¿Cuál fue el resultado real?

Me gustaría encontrarlo))

vk-io

Comentario más útil

La biblioteca, en principio, no registra errores, ya que todos ellos se lanzan a Promise (de lo contrario, habría un anti-patrón). Si hablamos de excepciones en middleware, entonces todas pueden detectarse con un middleware raíz:

// Custom catch all the errors
vk.updates.use(async (context, next) => {
    try {
        await next();
    } catch (error) {
        logger.error('An error has occurred', { error });
    }
});

Más información sobre el manejo de errores de middleware global aquí .

Todos 8 comentarios

¿Por ejemplo?

Eeeem ..... Por ejemplo, ¿qué es esto? Si, por ejemplo, una posible implementación, declararía la interfaz llgger, como el objeto de la consola. Es decir, los métodos habituales, debug () info (), varn () y error (), y en el constructor de la clase, en el parámetro opshen, aceptarían un objeto con dicha interfaz.

Dónde te vendría bien: es muy útil cuando en general existe un sistema de logging para el proyecto, por ejemplo, como hemos apuntado a los alces. En un proyecto de este tipo, los mensajes VK también deberían encajar en el sistema de registro general.

La biblioteca, en principio, no registra errores, ya que todos ellos se lanzan a Promise (de lo contrario, habría un anti-patrón). Si hablamos de excepciones en middleware, entonces todas pueden detectarse con un middleware raíz:

// Custom catch all the errors
vk.updates.use(async (context, next) => {
    try {
        await next();
    } catch (error) {
        logger.error('An error has occurred', { error });
    }
});

Más información sobre el manejo de errores de middleware global aquí .

¿Y quién estaba hablando del registro de errores? El ticket, en el que estamos ahora, está abierto sobre un registrador personalizado que registra todos los eventos. Por ejemplo, el nombre del método llamado, parámetros del método. Es importante para nosotros comprender la mecánica del trabajo interno de la biblioteca para ver qué llamadas ocurren dentro de ella, ver estas llamadas en los registros, recopilar estadísticas sobre el número de llamadas por segundo, minuto, hora, mes, analizar los resultados, porque todo esto está relacionado con limitar el número permitido de solicitudes, optimizar. No se trata en absoluto de la gestión de errores mediante ejecuciones. Se trata de registros.

@isinkin @negezor ¿Por qué se

Esto no es responsabilidad de la biblioteca, puede empaquetar todos los métodos con su propio controlador y registrarlos como desee. La biblioteca tiene la capacidad de encontrar los métodos llamados del módulo con la indicación env DEBUG=vk-io:* , ya que se usa el módulo de

@negezor Me gustaría aclarar mi solicitud, puede que se malinterprete. No estoy sugiriendo crear su propia biblioteca para iniciar sesión dentro de vk-io . Si así se entendió, es una camada. Estoy de acuerdo en que esto no es responsabilidad de la biblioteca. Pregunté cómo solo una biblioteca existente (en mi caso https://www.npmjs.com/package/bunyan) se puede conectar a vk-io . Es decir, no как создать , sino как подключить .

Creo que es obvio que el mecanismo para conectar registradores externos está en el área de responsabilidad de vk-io .
Por ejemplo, adjunto cómo está organizado en TypeORM. Incluso simplemente copiar un mecanismo de este tipo sería genial. https://typeorm.io/#/logging

Se acepta la promesa de que puede envolver llamadas a métodos públicos en envoltorios que registran. Sin embargo, este método no permite determinar a partir de los registros que diez llamadas a messages.send fueron realmente reemplazadas por una execute . Por lo tanto, es inútil como herramienta de registro.

El mensaje de que hay un registrador incorporado DEBUG=vk-io:* ni siquiera sé cómo comentar. Este no es un registrador con el debido respeto. Si se trata de un registrador, dígame cómo reenviar dichos registros a ELK. entonces estaré de acuerdo.

Hermanos, ¿dónde estáis?

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

Pacmard picture Pacmard  ·  3Comentarios

ProgrammingLife picture ProgrammingLife  ·  9Comentarios

nitreojs picture nitreojs  ·  3Comentarios

Jengas picture Jengas  ·  15Comentarios

T1MOXA picture T1MOXA  ·  20Comentarios