Winston: si el directorio de registros no existe, arrojará ex en lugar de crear directorio

Creado en 11 mar. 2015  ·  9Comentarios  ·  Fuente: winstonjs/winston

var transports = [];
transports.push(new winston.transports.DailyRotateFile({
  name: 'file',
  datePattern: '.yyyy-MM-ddTHH',
  filename: path.join(__dirname, "logs", "log_file.log")
}));

var logger = new winston.Logger({transports: transports});

logger.info("current scheduled_mt_task count");

Si el subdirectorio /logs no existe, arrojará una excepción como can't open file logs/log_file.log20150213XXX ,

Creo que winston debería crear automáticamente el subdirectorio en lugar de pedir a los usuarios que lo creen manualmente.

Comentario más útil

Voto por una opción para esto. Por defecto, el directorio de registro no debería crearse, pero con una opción como createDirectory establecida en verdadero, sería muy conveniente que Winston creara dicho directorio.

Todos 9 comentarios

Creo que debería ser responsabilidad del desarrollador asegurarse de que su entorno se aprovisione correctamente.

también, relacionado con pr # 581 y problema # 511

Voto por una opción para esto. Por defecto, el directorio de registro no debería crearse, pero con una opción como createDirectory establecida en verdadero, sería muy conveniente que Winston creara dicho directorio.

+1

De acuerdo con @ambbell aquí. Depende del consumidor de winston asegurarse de que exista su directorio de registros.

+1

Otras herramientas de registro como NLog para .NET y SLF4J para Java pueden crear la carpeta sobre la marcha. Además, ¿por qué falla Winston si no puede escribir el registro? ¿Por qué una aplicación completa debería fallar solo porque no se puede iniciar sesión?

@indexzero ¿ @PierLucGagnon ? ¿Aproximadamente la opción createDirectory ? Encuentro el comportamiento actual muy inconveniente y (como lo menciona @ guillegr123) inconsistente con el funcionamiento de otros marcos de registro, por lo que contradice las expectativas del usuario.

Quiero decir, ¿por qué no da un paso más allá y dice que es responsabilidad de los desarrolladores asegurarse de que se cree un ARCHIVO de registro de antemano?

Dado que las carpetas llamadas / logs se ignorarán si usa uno de los gitignores comunes, la excepción de carpeta que falta es un problema común cuando implemento mis aplicaciones en nuevos entornos. Espero que se acepte la solicitud de extracción.

@indexzero ¿Pero por qué? Cuando dices algo como "Yo creo", necesitas proporcionar un razonamiento para esto, ¿no? Mi razón para tener esta opción es porque normalmente el directorio de registros no está bajo el control de versiones y no se creará al clonar un repositorio; tienes un error al intentar ejecutarlo. Ni siquiera estoy hablando de entornos implementados automáticamente.

Solución alternativa: agregue esta instrucción antes de la declaración de transportes:
fs.mkdir('./logs', (err) => { /* no-op */ })

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