diff --git a/winston/winston-tests.ts b/winston/winston-tests.ts index 46a00e4da..a82390d1a 100644 --- a/winston/winston-tests.ts +++ b/winston/winston-tests.ts @@ -76,14 +76,19 @@ winston.exitOnError = bool; winston.log(str, str); winston.log(str, str, metadata); +winston.log(str, str, metadata, metadata, metadata); winston.debug(str); winston.debug(str, metadata); +winston.debug(str, metadata, metadata, metadata); winston.info(str); winston.info(str, metadata); +winston.info(str, metadata, metadata, metadata); winston.warn(str); winston.warn(str, metadata); +winston.warn(str, metadata, metadata, metadata); winston.error(str); winston.error(str, metadata); +winston.error(str, metadata, metadata, metadata); winston.query(queryOptions, (err: Error, results: any): void => { @@ -94,6 +99,7 @@ winston.query((err: Error, results: any): void => { logger = winston.add(transport, transportOptions); logger = winston.remove(transport); +logger = winston.add(transport, {filename: 'path/to/file.log'}); winston.clear(); logger = winston.profile(str, str, metadata, (err: Error, level: string, msg: string, meta: any):void => { @@ -118,14 +124,19 @@ readableStream.on('log', function (log:any):void { logger = logger.extend(obj); logger.log(str, str); logger.log(str, str, metadata); +logger.log(str, str, metadata, metadata, metadata); logger.debug(str); logger.debug(str, metadata); +logger.debug(str, metadata, metadata, metadata); logger.info(str); logger.info(str, metadata); +logger.info(str, metadata, metadata, metadata); logger.warn(str); logger.warn(str, metadata); +logger.warn(str, metadata, metadata, metadata); logger.error(str); logger.error(str, metadata); +logger.error(str, metadata, metadata, metadata); logger.query(queryOptions, (err: Error, results: any): void => { @@ -140,6 +151,7 @@ logger.handleExceptions(transport); logger.unhandleExceptions(transport); logger = logger.add(transport, transportOptions, bool); logger = logger.add(transport); +logger = logger.add(transport, {filename: 'path/to/file.log'}); logger.clear(); logger = logger.remove(transport); diff --git a/winston/winston.d.ts b/winston/winston.d.ts index f7cb4e0a0..b7254453b 100644 --- a/winston/winston.d.ts +++ b/winston/winston.d.ts @@ -24,20 +24,12 @@ declare module "winston" { export var exitOnError: boolean; export var level: string; - export function log(level: string, msg: string, meta: any, callback?: (err: Error, level: string, msg: string, meta: any) => void): LoggerInstance; - export function log(level: string, msg: string, callback?: (err: Error, level: string, msg: string, meta: any) => void): LoggerInstance; + export var log: LogMethod; - export function debug(msg: string, meta: any, callback?: (err: Error, level: string, msg: string, meta: any) => void): LoggerInstance; - export function debug(msg: string, callback?: (err: Error, level: string, msg: string, meta: any) => void): LoggerInstance; - - export function info(msg: string, meta: any, callback?: (err: Error, level: string, msg: string, meta: any) => void): LoggerInstance; - export function info(msg: string, callback?: (err: Error, level: string, msg: string, meta: any) => void): LoggerInstance; - - export function warn(msg: string, meta: any, callback?: (err: Error, level: string, msg: string, meta: any) => void): LoggerInstance; - export function warn(msg: string, callback?: (err: Error, level: string, msg: string, meta: any) => void): LoggerInstance; - - export function error(msg: string, meta: any, callback?: (err: Error, level: string, msg: string, meta: any) => void): LoggerInstance; - export function error(msg: string, callback?: (err: Error, level: string, msg: string, meta: any) => void): LoggerInstance; + export var debug: LeveledLogMethod; + export var info: LeveledLogMethod; + export var warn: LeveledLogMethod; + export var error: LeveledLogMethod; export function query(options: QueryOptions, callback?: (err: Error, results: any) => void): any; export function query(callback: (err: Error, results: any) => void): any; @@ -113,20 +105,12 @@ declare module "winston" { extend(target: any): LoggerInstance; - log(level: string, msg: string, meta: any, callback?: (err: Error, level: string, msg: string, meta: any) => void): LoggerInstance; - log(level: string, msg: string, callback?: (err: Error, level: string, msg: string, meta: any) => void): LoggerInstance; + log: LogMethod; - debug(msg: string, meta: any, callback?: (err: Error, level: string, msg: string, meta: any) => void): LoggerInstance; - debug(msg: string, callback?: (err: Error, level: string, msg: string, meta: any) => void): LoggerInstance; - - info(msg: string, meta: any, callback?: (err: Error, level: string, msg: string, meta: any) => void): LoggerInstance; - info(msg: string, callback?: (err: Error, level: string, msg: string, meta: any) => void): LoggerInstance; - - warn(msg: string, meta: any, callback?: (err: Error, level: string, msg: string, meta: any) => void): LoggerInstance; - warn(msg: string, callback?: (err: Error, level: string, msg: string, meta: any) => void): LoggerInstance; - - error(msg: string, meta: any, callback?: (err: Error, level: string, msg: string, meta: any) => void): LoggerInstance; - error(msg: string, callback?: (err: Error, level: string, msg: string, meta: any) => void): LoggerInstance; + debug: LeveledLogMethod; + info: LeveledLogMethod; + warn: LeveledLogMethod; + error: LeveledLogMethod; query(options: QueryOptions, callback?: (err: Error, results: any) => void): any; query(callback: (err: Error, results: any) => void): any; @@ -225,7 +209,9 @@ declare module "winston" { Webhook: WebhookTransportInstance; } - export interface TransportOptions { + export type TransportOptions = ConsoleTransportOptions|DailyRotateFileTransportOptions|FileTransportOptions|HttpTransportOptions|MemoryTransportOptions|WebhookTransportOptions|WinstonModuleTransportOptions; + + export interface GenericTransportOptions { level?: string; silent?: boolean; raw?: boolean; @@ -258,12 +244,12 @@ declare module "winston" { path?: string; } - export interface ConsoleTransportOptions extends TransportOptions, GenericTextTransportOptions { + export interface ConsoleTransportOptions extends GenericTransportOptions, GenericTextTransportOptions { logstash?: boolean; debugStdout?: boolean; } - export interface DailyRotateFileTransportOptions extends TransportOptions, GenericTextTransportOptions { + export interface DailyRotateFileTransportOptions extends GenericTransportOptions, GenericTextTransportOptions { logstash?: boolean; maxsize?: number; maxFiles?: number; @@ -279,7 +265,7 @@ declare module "winston" { stream?: NodeJS.WritableStream; } - export interface FileTransportOptions extends TransportOptions, GenericTextTransportOptions { + export interface FileTransportOptions extends GenericTransportOptions, GenericTextTransportOptions { logstash?: boolean; maxsize?: number; rotationFormat?: boolean; @@ -297,14 +283,14 @@ declare module "winston" { stream?: NodeJS.WritableStream; } - export interface HttpTransportOptions extends TransportOptions, GenericNetworkTransportOptions { + export interface HttpTransportOptions extends GenericTransportOptions, GenericNetworkTransportOptions { ssl?: boolean; } - export interface MemoryTransportOptions extends TransportOptions, GenericTextTransportOptions { + export interface MemoryTransportOptions extends GenericTransportOptions, GenericTextTransportOptions { } - export interface WebhookTransportOptions extends TransportOptions, GenericNetworkTransportOptions { + export interface WebhookTransportOptions extends GenericTransportOptions, GenericNetworkTransportOptions { method?: string; ssl?: { key?: any; @@ -313,7 +299,7 @@ declare module "winston" { }; } - export interface WinstonModuleTransportOptions extends TransportOptions { + export interface WinstonModuleTransportOptions extends GenericTransportOptions { [optionName: string]: any; } @@ -332,4 +318,20 @@ declare module "winston" { start: Date; done: (msg: string) => LoggerInstance; } + + interface LogMethod { + (level: string, msg: string, callback: LogCallback): LoggerInstance; + (level: string, msg: string, meta: any, callback: LogCallback): LoggerInstance; + (level: string, msg: string, ... meta: any[]): LoggerInstance; + } + + interface LeveledLogMethod { + (msg: string, callback: LogCallback): LoggerInstance; + (msg: string, meta: any, callback: LogCallback): LoggerInstance; + (msg: string, ... meta: any[]): LoggerInstance; + } + + interface LogCallback { + (error?: any, level?: string, msg?: string, meta?:any): void; + } }