Elasticsearch Integration
Elasticsearch is commonly used for log storage and search. To integrate Winston with Elasticsearch, you can use the winston-elasticsearch
transport.
- Install the Transport:
npm install winston-elasticsearch
- Configure the Transport:
const winston = require('winston'); const ElasticsearchTransport = require('winston-elasticsearch'); const client = new ElasticsearchTransport.Client({ node: 'http://localhost:9200' }); const transport = new ElasticsearchTransport({ level: 'info', client: client, indexPrefix: 'logs', transformer: (log) => ({ message: log.message, level: log.level, timestamp: log.timestamp }) }); const logger = winston.createLogger({ level: 'info', format: winston.format.combine( winston.format.timestamp(), winston.format.json() ), transports: [ transport ] }); logger.info('Log message sent to Elasticsearch');
Cloud Logging Services
For cloud-based logging solutions like AWS CloudWatch or Google Cloud Logging:
- AWS CloudWatch:
npm install winston-cloudwatch
const winston = require('winston'); const CloudWatchTransport = require('winston-cloudwatch'); const logger = winston.createLogger({ level: 'info', format: winston.format.combine( winston.format.timestamp(), winston.format.json() ), transports: [ new CloudWatchTransport({ logGroupName: 'my-log-group', logStreamName: 'my-log-stream', awsRegion: 'us-east-1' }) ] }); logger.info('Log message sent to CloudWatch');
- Google Cloud Logging:
npm install @google-cloud/logging-winston
javascriptCopy codeconst winston = require('winston'); const { LoggingWinston } = require('@google-cloud/logging-winston'); const loggingWinston = new LoggingWinston(); const logger = winston.createLogger({ level: 'info', format: winston.format.combine( winston.format.timestamp(), winston.format.json() ), transports: [ loggingWinston ] }); logger.info('Log message sent to Google Cloud Logging');
Leave a Reply