Configura Stackdriver Logging para Node.js

Puedes escribir registros a Stackdriver Logging desde aplicaciones de Node.js con nuestros complementos Bunyan o Winston o con la biblioteca cliente de Stackdriver Logging Cloud para Node.js directamente.

No hace falta que el agente de Stackdriver Logging esté instalado para utilizar las bibliotecas Bunyan y Winston en una instancia de VM de Compute Engine.

Antes de comenzar

  1. Accede a tu Cuenta de Google.

    Si todavía no tienes una cuenta, regístrate para obtener una nueva.

  2. Selecciona o crea un proyecto de GCP.

    Ir a la página Administrar recursos

  3. Comprueba que la facturación esté habilitada en tu proyecto.

    Descubre cómo puedes habilitar la facturación

  4. Habilita las API de Stackdriver Logging necesarias.

    Habilita las API

  5. Prepara tu entorno para el desarrollo en Node.js.

    Ir a la guía de configuración de Node.js

Utiliza Bunyan

Proporcionamos un complemento para la biblioteca de registro Bunyan Node.js. El complemento de Stackdriver Logging para Bunyan ofrece una capa simple y de nivel superior a fin de trabajar con Stackdriver Logging.

Instala el complemento

  1. La forma más sencilla de instalar el complemento Bunyan de Stackdriver Logging es con npm:

    npm install --save @google-cloud/logging-bunyan
  2. Importa el complemento y agrégalo a tu configuración de Bunyan:

    const bunyan = require('bunyan');
    
    // Imports the Google Cloud client library for Bunyan
    const {LoggingBunyan} = require('@google-cloud/logging-bunyan');
    
    // Creates a Bunyan Stackdriver Logging client
    const loggingBunyan = new LoggingBunyan();
    
    // Create a Bunyan logger that streams to Stackdriver Logging
    // Logs will be written to: "projects/YOUR_PROJECT_ID/logs/bunyan_log"
    const logger = bunyan.createLogger({
      // The JSON payload of the log as it appears in Stackdriver Logging
      // will contain "name": "my-service"
      name: 'my-service',
      streams: [
        // Log to the console at 'info' and above
        {stream: process.stdout, level: 'info'},
        // And log to Stackdriver Logging, logging at 'info' and above
        loggingBunyan.stream('info'),
      ],
    });
    
    // Writes some log entries
    logger.error('warp nacelles offline');
    logger.info('shields at 99%');

Configura el complemento

Puedes personalizar el comportamiento de un complemento Bunyan con las mismas opciones de configuración que admite la biblioteca cliente de Cloud en Stackdriver Logging para Node.js. Estas opciones pueden pasarse en el objeto options que se pasa al constructor del complemento.

Utiliza Winston

Proporcionamos un complemento para la biblioteca de registro Winston Node.js. El complemento de Stackdriver Logging para Winston ofrece una capa simple y de nivel superior a fin de trabajar con Stackdriver Logging.

Instala el complemento

  1. La forma más sencilla de instalar el complemento Winston de Stackdriver Logging es con npm:

    npm install --save @google-cloud/logging-winston
  2. Importa el complemento y agrégalo a tu configuración de Winston:

    // winston 3 example.
    const winston = require('winston');
    
    // Imports the Google Cloud client library for Winston
    const {LoggingWinston} = require('@google-cloud/logging-winston');
    
    const loggingWinston = new LoggingWinston();
    
    // Create a Winston logger that streams to Stackdriver Logging
    // Logs will be written to: "projects/YOUR_PROJECT_ID/logs/winston_log"
    const logger = winston.createLogger({
      level: 'info',
      transports: [
        new winston.transports.Console(),
        // Add Stackdriver Logging
        loggingWinston,
      ],
    });
    
    // Writes some log entries
    logger.error('warp nacelles offline');
    logger.info('shields at 99%');

Configura el complemento

Puedes personalizar el comportamiento de un complemento Winston con las mismas opciones de configuración que admite biblioteca cliente de Cloud en Stackdriver Logging para Node.js. Estas opciones pueden pasarse en el objeto options que se pasa al constructor del complemento.

A fin de obtener más información sobre la instalación, consulta la documentación sobre las bibliotecas de Stackdriver Logging para Node.js. También puedes informar errores con el seguimiento de problemas.

Utiliza la biblioteca cliente de Cloud directamente

A fin de obtener información sobre cómo utilizar una biblioteca cliente de Cloud en Stackdriver Logging para Node.js directamente, consulta Bibliotecas cliente de Stackdriver Logging.

Ejecuta en Google Cloud Platform

A fin de utilizar las bibliotecas cliente de Stackdriver Logging para Node.js se requiere la función Escritor de registros de Cloud IAM en GCP. La mayoría de los entornos de GCP proporcionan esta función de manera predeterminada.

App Engine

App Engine otorga la función de escritor de registros de forma predeterminada.

Las bibliotecas de Stackdriver Logging para Node.js se pueden utilizar sin tener que proporcionar credenciales explícitamente.

Stackdriver Logging está habilitado automáticamente para las aplicaciones de App Engine. No se requiere ninguna configuración adicional.

Google Kubernetes Engine

En Google Kubernetes Engine, debes agregar el alcance de acceso logging.write cuando creas el clúster:

gcloud container clusters create example-cluster-name --scopes https://www.googleapis.com/auth/logging.write

Compute Engine

Cuando utilices las instancias de VM de Compute Engine, agrega el alcance de acceso cloud-platform a cada instancia. Cuando crees una instancia nueva mediante Google Cloud Platform Console, hazlo en la sección Identidad y acceso a la API en el panel Crear una instancia: Utiliza la cuenta de servicio predeterminada de Compute Engine o una cuenta de servicio diferente y selecciona Permitir acceso total a las API de Cloud en la sección Identidad y acceso a la API. Sin importar la cuenta de servicio que seleccionaste, asegúrate de haberle otorgado la función de Escritor de registros en la sección IAM y Administración de GCP Console.

Cloud Functions

Cloud Functions otorga la función Escritor de registros de manera predeterminada.

Las bibliotecas de Stackdriver Logging para Node.js se pueden utilizar sin tener que proporcionar credenciales explícitamente.

Cloud Functions está configurado para utilizar Stackdriver Logging automáticamente.

Ejecuta de forma local y en otros lugares

A fin de utilizar las bibliotecas de Stackdriver Logging para Node.js fuera de GCP, debes proporcionar el ID de tu proyecto de GCP y las credenciales correspondientes de tu cuenta de servicio directamente a las bibliotecas de Stackdriver Logging para Node.js. Esto se aplica a la ejecución del agente en tu propia estación de trabajo, en las computadoras de tus centros de datos o en las instancias de VM de otro proveedor de servicios en la nube. Para obtener más información, consulta Obtén y proporciona las credenciales de la cuenta de servicio de forma manual.

Con Bunyan:

// Imports the Google Cloud client library for Bunyan
const {LoggingBunyan} = require('@google-cloud/logging-bunyan');

// Creates a client
const loggingBunyan = new LoggingBunyan({
  projectId: 'your-project-id',
  keyFilename: '/path/to/key.json',
});

Con Winston:

// Imports the Google Cloud client library for Winston
const {LoggingWinston} = require('@google-cloud/logging-winston');

// Creates a client
const loggingWinston = new LoggingWinston({
  projectId: 'your-project-id',
  keyFilename: '/path/to/key.json',
});

Visualiza los registros

Después de la implementación, podrás ver los registros en el visor de registros de GCP Console.

Ir al visor de registros

Para obtener más información, consulta Visualiza los registros.

¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...

Stackdriver Logging
Si necesitas ayuda, visita nuestra página de asistencia.