winston-s3-transport
Version:
Logs generated through Winston can be transferred to an S3 bucket using `winston-s3-transport`.
90 lines (89 loc) • 1.64 kB
TypeScript
/// <reference types="node" />
import Transport from "winston-transport";
import { CompleteMultipartUploadCommandOutput, S3ClientConfig } from "@aws-sdk/client-s3";
import { PassThrough } from "stream";
/**
* Config
*/
export interface Config<T = any> {
/**
* bucket
*/
bucket: string;
/**
* generateGruop
*/
generateGruop?: (log: T) => string;
/**
* generateBucketPath
*/
generateBucketPath?: (group: string, log: T) => string;
/**
* maxBufferSize
*/
maxBufferSize?: number;
/**
* maxBufferCount
*/
maxBufferCount?: number;
/**
* maxFileSize
*/
maxFileSize?: number;
/**
* maxFileAge
*/
maxFileAge?: number;
/**
* gzip
*/
gzip?: boolean;
}
/**
* Options
*/
export interface Options extends Transport.TransportStreamOptions {
/**
* s3ClientConfig
* @see https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-s3/interfaces/s3clientconfig.html
*/
s3ClientConfig: S3ClientConfig;
/**
* S3TransportConfig
*/
s3TransportConfig: Config;
}
/**
* StreamInfoName
*/
export declare enum StreamInfoName {
/**
* TotalWrittenBytes
*/
TotalWrittenBytes = 0,
/**
* Stream
*/
Stream = 1,
/**
* S3Upload
*/
S3Upload = 2
}
/**
* StreamInfo
*/
export type StreamInfo = [
/**
* totalWrittenBytes
*/
totalWrittenBytes: number,
/**
* stream
*/
stream: PassThrough,
/**
* s3Upload
*/
s3Upload: Promise<CompleteMultipartUploadCommandOutput>
];