Esta documentación ha sido traducida automáticamente por IA.
El sistema de registro de NocoBase se basa en Winston. Por defecto, NocoBase clasifica los registros en: registros de solicitudes de API, registros de ejecución del sistema y registros de ejecución de SQL. Los registros de solicitudes de API y los registros de ejecución de SQL se imprimen internamente por la aplicación. Los desarrolladores de plugins, por lo general, solo necesitan imprimir los registros de ejecución del sistema relacionados con sus plugins.
Este documento describe cómo crear e imprimir registros al desarrollar un plugin.
NocoBase le ofrece métodos para imprimir los registros de ejecución del sistema. Estos registros se imprimen siguiendo campos definidos y se envían a archivos específicos.
Todos estos métodos se utilizan de la siguiente manera:
El primer parámetro es el mensaje del registro, y el segundo es un objeto de metadatos opcional que puede contener cualquier par clave-valor. Los campos module, submodule y method se extraerán como campos individuales, mientras que los campos restantes se agruparán en el campo meta.
Si desea seguir utilizando los métodos de registro predeterminados del sistema, pero no quiere que se guarden en el archivo predeterminado, puede crear una instancia de logger de sistema personalizada usando createSystemLogger.
Si prefiere no usar los métodos de registro que ofrece el sistema y desea utilizar los métodos nativos de Winston, puede crear registros de las siguientes maneras.
createLoggerLas options (opciones) extienden las winston.LoggerOptions originales.
transports - Puede usar 'console' | 'file' | 'dailyRotateFile' para aplicar los métodos de salida preestablecidos.format - Puede usar 'logfmt' | 'json' | 'delimiter' para aplicar los formatos de impresión preestablecidos.app.createLoggerEn escenarios con múltiples aplicaciones, a veces queremos personalizar los directorios y archivos de salida para que se guarden en un directorio con el nombre de la aplicación actual.
plugin.createLoggerEl caso de uso y la forma de emplearlo son los mismos que para app.createLogger.