index.d.ts 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219
  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. type LogCallback = (
  55. error?: any,
  56. level?: string,
  57. message?: string,
  58. meta?: any
  59. ) => void;
  60. interface LogEntry {
  61. level: string;
  62. message: string;
  63. [optionName: string]: any;
  64. }
  65. interface LogMethod {
  66. (level: string, message: string, callback: LogCallback): Logger;
  67. (level: string, message: string, meta: any, callback: LogCallback): Logger;
  68. (level: string, message: string, ...meta: any[]): Logger;
  69. (entry: LogEntry): Logger;
  70. (level: string, message: any): Logger;
  71. }
  72. interface LeveledLogMethod {
  73. (message: string, callback: LogCallback): Logger;
  74. (message: string, meta: any, callback: LogCallback): Logger;
  75. (message: string, ...meta: any[]): Logger;
  76. (message: any): Logger;
  77. (infoObject: object): Logger;
  78. }
  79. interface LoggerOptions {
  80. levels?: Config.AbstractConfigSetLevels;
  81. silent?: boolean;
  82. format?: logform.Format;
  83. level?: string;
  84. exitOnError?: Function | boolean;
  85. defaultMeta?: any;
  86. transports?: Transport[] | Transport;
  87. handleExceptions?: boolean;
  88. handleRejections?: boolean;
  89. exceptionHandlers?: any;
  90. rejectionHandlers?: any;
  91. }
  92. class Logger extends NodeJSStream.Transform {
  93. constructor(options?: LoggerOptions);
  94. silent: boolean;
  95. format: logform.Format;
  96. levels: Config.AbstractConfigSetLevels;
  97. level: string;
  98. transports: Transport[];
  99. exceptions: ExceptionHandler;
  100. rejections: RejectionHandler;
  101. profilers: object;
  102. exitOnError: Function | boolean;
  103. defaultMeta?: any;
  104. log: LogMethod;
  105. add(transport: Transport): this;
  106. remove(transport: Transport): this;
  107. clear(): this;
  108. close(): this;
  109. // for cli and npm levels
  110. error: LeveledLogMethod;
  111. warn: LeveledLogMethod;
  112. help: LeveledLogMethod;
  113. data: LeveledLogMethod;
  114. info: LeveledLogMethod;
  115. debug: LeveledLogMethod;
  116. prompt: LeveledLogMethod;
  117. http: LeveledLogMethod;
  118. verbose: LeveledLogMethod;
  119. input: LeveledLogMethod;
  120. silly: LeveledLogMethod;
  121. // for syslog levels only
  122. emerg: LeveledLogMethod;
  123. alert: LeveledLogMethod;
  124. crit: LeveledLogMethod;
  125. warning: LeveledLogMethod;
  126. notice: LeveledLogMethod;
  127. query(
  128. options?: QueryOptions,
  129. callback?: (err: Error, results: any) => void
  130. ): any;
  131. stream(options?: any): NodeJS.ReadableStream;
  132. startTimer(): Profiler;
  133. profile(id: string | number, meta?: Record<string, any>): this;
  134. configure(options: LoggerOptions): void;
  135. child(options: Object): this;
  136. isLevelEnabled(level: string): boolean;
  137. isErrorEnabled(): boolean;
  138. isWarnEnabled(): boolean;
  139. isInfoEnabled(): boolean;
  140. isVerboseEnabled(): boolean;
  141. isDebugEnabled(): boolean;
  142. isSillyEnabled(): boolean;
  143. }
  144. class Container {
  145. loggers: Map<string, Logger>;
  146. options: LoggerOptions;
  147. add(id: string, options?: LoggerOptions): Logger;
  148. get(id: string, options?: LoggerOptions): Logger;
  149. has(id: string): boolean;
  150. close(id?: string): void;
  151. constructor(options?: LoggerOptions);
  152. }
  153. let version: string;
  154. let loggers: Container;
  155. let addColors: (target: Config.AbstractConfigSetColors) => any;
  156. let createLogger: (options?: LoggerOptions) => Logger;
  157. // Pass-through npm level methods routed to the default logger.
  158. let error: LeveledLogMethod;
  159. let warn: LeveledLogMethod;
  160. let info: LeveledLogMethod;
  161. let http: LeveledLogMethod;
  162. let verbose: LeveledLogMethod;
  163. let debug: LeveledLogMethod;
  164. let silly: LeveledLogMethod;
  165. // Other pass-through methods routed to the default logger.
  166. let log: LogMethod;
  167. let query: (
  168. options?: QueryOptions,
  169. callback?: (err: Error, results: any) => void
  170. ) => any;
  171. let stream: (options?: any) => NodeJS.ReadableStream;
  172. let add: (transport: Transport) => Logger;
  173. let remove: (transport: Transport) => Logger;
  174. let clear: () => Logger;
  175. let startTimer: () => Profiler;
  176. let profile: (id: string | number) => Logger;
  177. let configure: (options: LoggerOptions) => void;
  178. let child: (options: Object) => Logger;
  179. let level: string;
  180. let exceptions: ExceptionHandler;
  181. let rejections: RejectionHandler;
  182. let exitOnError: Function | boolean;
  183. // let default: object;
  184. }
  185. export = winston;