index.d.ts 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208
  1. // Type definitions for winston 3.0
  2. // Project: https://github.com/winstonjs/winston
  3. /// <reference types="node" />
  4. import * as NodeJSStream from 'stream';
  5. import * as logform from 'logform';
  6. import * as Transport from 'winston-transport';
  7. import * as Config from './lib/winston/config/index';
  8. import * as Transports from './lib/winston/transports/index';
  9. declare namespace winston {
  10. // Hoisted namespaces from other modules
  11. export import format = logform.format;
  12. export import Logform = logform;
  13. export import config = Config;
  14. export import transports = Transports;
  15. export import transport = Transport;
  16. class ExceptionHandler {
  17. constructor(logger: Logger);
  18. logger: Logger;
  19. handlers: Map<any, any>;
  20. catcher: Function | boolean;
  21. handle(...transports: Transport[]): void;
  22. unhandle(...transports: Transport[]): void;
  23. getAllInfo(err: string | Error): object;
  24. getProcessInfo(): object;
  25. getOsInfo(): object;
  26. getTrace(err: Error): object;
  27. }
  28. class RejectionHandler {
  29. constructor(logger: Logger);
  30. logger: Logger;
  31. handlers: Map<any, any>;
  32. catcher: Function | boolean;
  33. handle(...transports: Transport[]): void;
  34. unhandle(...transports: Transport[]): void;
  35. getAllInfo(err: string | Error): object;
  36. getProcessInfo(): object;
  37. getOsInfo(): object;
  38. getTrace(err: Error): object;
  39. }
  40. interface QueryOptions {
  41. rows?: number;
  42. limit?: number;
  43. start?: number;
  44. from?: Date;
  45. until?: Date;
  46. order?: 'asc' | 'desc';
  47. fields: any;
  48. }
  49. class Profiler {
  50. logger: Logger;
  51. start: Number;
  52. done(info?: any): boolean;
  53. }
  54. interface LogEntry {
  55. level: string;
  56. message: string;
  57. [optionName: string]: any;
  58. }
  59. interface LogMethod {
  60. (level: string, message: string, ...meta: any[]): Logger;
  61. (entry: LogEntry): Logger;
  62. (level: string, message: any): Logger;
  63. }
  64. interface LeveledLogMethod {
  65. (message: string, ...meta: any[]): Logger;
  66. (message: any): Logger;
  67. (infoObject: object): Logger;
  68. }
  69. interface LoggerOptions {
  70. levels?: Config.AbstractConfigSetLevels;
  71. silent?: boolean;
  72. format?: logform.Format;
  73. level?: string;
  74. exitOnError?: Function | boolean;
  75. defaultMeta?: any;
  76. transports?: Transport[] | Transport;
  77. handleExceptions?: boolean;
  78. handleRejections?: boolean;
  79. exceptionHandlers?: any;
  80. rejectionHandlers?: any;
  81. }
  82. class Logger extends NodeJSStream.Transform {
  83. constructor(options?: LoggerOptions);
  84. silent: boolean;
  85. format: logform.Format;
  86. levels: Config.AbstractConfigSetLevels;
  87. level: string;
  88. transports: Transport[];
  89. exceptions: ExceptionHandler;
  90. rejections: RejectionHandler;
  91. profilers: object;
  92. exitOnError: Function | boolean;
  93. defaultMeta?: any;
  94. log: LogMethod;
  95. add(transport: Transport): this;
  96. remove(transport: Transport): this;
  97. clear(): this;
  98. close(): this;
  99. // for cli and npm levels
  100. error: LeveledLogMethod;
  101. warn: LeveledLogMethod;
  102. help: LeveledLogMethod;
  103. data: LeveledLogMethod;
  104. info: LeveledLogMethod;
  105. debug: LeveledLogMethod;
  106. prompt: LeveledLogMethod;
  107. http: LeveledLogMethod;
  108. verbose: LeveledLogMethod;
  109. input: LeveledLogMethod;
  110. silly: LeveledLogMethod;
  111. // for syslog levels only
  112. emerg: LeveledLogMethod;
  113. alert: LeveledLogMethod;
  114. crit: LeveledLogMethod;
  115. warning: LeveledLogMethod;
  116. notice: LeveledLogMethod;
  117. query(
  118. options?: QueryOptions,
  119. callback?: (err: Error, results: any) => void
  120. ): any;
  121. stream(options?: any): NodeJS.ReadableStream;
  122. startTimer(): Profiler;
  123. profile(id: string | number, meta?: Record<string, any>): this;
  124. configure(options: LoggerOptions): void;
  125. child(options: Object): this;
  126. isLevelEnabled(level: string): boolean;
  127. isErrorEnabled(): boolean;
  128. isWarnEnabled(): boolean;
  129. isInfoEnabled(): boolean;
  130. isVerboseEnabled(): boolean;
  131. isDebugEnabled(): boolean;
  132. isSillyEnabled(): boolean;
  133. }
  134. class Container {
  135. loggers: Map<string, Logger>;
  136. options: LoggerOptions;
  137. add(id: string, options?: LoggerOptions): Logger;
  138. get(id: string, options?: LoggerOptions): Logger;
  139. has(id: string): boolean;
  140. close(id?: string): void;
  141. constructor(options?: LoggerOptions);
  142. }
  143. let version: string;
  144. let loggers: Container;
  145. let addColors: (target: Config.AbstractConfigSetColors) => any;
  146. let createLogger: (options?: LoggerOptions) => Logger;
  147. // Pass-through npm level methods routed to the default logger.
  148. let error: LeveledLogMethod;
  149. let warn: LeveledLogMethod;
  150. let info: LeveledLogMethod;
  151. let http: LeveledLogMethod;
  152. let verbose: LeveledLogMethod;
  153. let debug: LeveledLogMethod;
  154. let silly: LeveledLogMethod;
  155. // Other pass-through methods routed to the default logger.
  156. let log: LogMethod;
  157. let query: (
  158. options?: QueryOptions,
  159. callback?: (err: Error, results: any) => void
  160. ) => any;
  161. let stream: (options?: any) => NodeJS.ReadableStream;
  162. let add: (transport: Transport) => Logger;
  163. let remove: (transport: Transport) => Logger;
  164. let clear: () => Logger;
  165. let startTimer: () => Profiler;
  166. let profile: (id: string | number) => Logger;
  167. let configure: (options: LoggerOptions) => void;
  168. let child: (options: Object) => Logger;
  169. let level: string;
  170. let exceptions: ExceptionHandler;
  171. let rejections: RejectionHandler;
  172. let exitOnError: Function | boolean;
  173. // let default: object;
  174. }
  175. export = winston;