Tengo una aplicación que guarda los registros de errores en el mismo directorio donde se ejecutó el script. Esto es malo porque crea archivos error.log en lugares aleatorios. Así que quiero guardar el archivo en /var/log en GNU/Linux y me gustaría tener lo mismo para Windows y macOS (y probablemente cualquier otro sistema operativo donde se ejecute NodeJS).
¿Hay alguna forma multiplataforma de obtener un directorio de registro? Entonces, ¿puedo escribir registros allí? También cómo trabajar con ese directorio si es propiedad de root. ¿O hay un lugar mejor para guardar los registros de la aplicación NodeJS?
El único directorio multiplataforma de NodeJS es /tmp usando:
const log_filename = path.join(os.tmpdir(), 'lips.error.log');¿Cuál es el mejor lugar para guardar registros donde los usuarios puedan buscarlos? El mismo directorio y el directorio /tmp no son buenas opciones en mi opción. ¿Cuáles son las otras opciones para guardar archivos de registro?
¿Cuál es el lugar habitual donde los archivos de registro deben guardarse entre plataformas en cualquier aplicación CLI?
Eso es parte de la diversión: no hay un solo directorio para almacenar registros, por lo que deberá manejar cada sistema operativo compatible por separado.
Linux tiene opciones, pero sería bueno optar por la especificación XDG, ya que es un estándar razonable que no llenará los registros del sistema y simplificará el aislamiento de los registros de las aplicaciones.
macOS puede usar la carpeta ~/Library/logs .
Windows puede usar la carpeta AppData , generalmente AppData/Local .