changed as per @mhegazy, added other missing parts

This commit is contained in:
Peter Snider
2016-06-21 10:10:09 -07:00
parent b59c8be917
commit 60d75b4b42
+93 -29
View File
@@ -9,50 +9,114 @@ declare module 'pino' {
import stream = require('stream')
interface Serializers {
req(req: Object): Object
res(res: Object): Object
type Level = 'fatal' | 'error' | 'warn' | 'info' | 'debug' | 'trace' | 'silent'
type Headers = {[header: string]: string}
type LevelLabelsToValues = {[level: string]: number}
type LevelValuesToLabels = {[level: number]: string}
interface RequestSummary {
pid: number
hostname: string
level: number
msg: string
time: string
v: number
req: {
method: string
url: string
headers: Headers
remoteAddress: string
remotePort: number
}
}
interface ResponseSummary {
pid: number
hostname: string
level: number
msg: string
time: string
v: number
res: {
statusCode: number
header: string
}
}
interface ErrorSummary {
pid: number
hostname: string
level: number
msg: string
time: number
v: number
type: string
stack: string
}
interface Serializers {
req?: (req: any) => RequestSummary
res?: (res: any) => ResponseSummary
err?: (error: Error) => ErrorSummary
}
interface LoggerOptions {
name?: string
enabled?: boolean
// avoid error causes by circular references in the object tree, default true
safe?: boolean
// the name of the logger, default undefined
name?: string
// an object containing functions for custom serialization of objects.
// These functions should return an JSONifiable object and they should never throw
serializers?: Serializers
// Outputs ISO time stamps ('2016-03-09T15:18:53.889Z') instead of Epoch time stamps (1457536759176).
// WARNING: This option carries a 25% performance drop, we recommend using default Epoch timestamps and transforming logs after if required.
// The pino -t command will do this for you (see CLI). default false.
slowtime?: boolean
// Enables extreme mode, yields an additional 60% performance (from 250ms down to 100ms per 10000 ops).
// There are trade-off's should be understood before usage. See Extreme mode explained. default false
extreme?: boolean
// enables logging, defaults to true.
enabled?: boolean
level?: Level
}
interface Pino {
(): Logger
(options: LoggerOptions): Logger
(stream: stream.Writable): Logger
(optionsOrStream?: LoggerOptions | stream.Writable): Logger
(options: LoggerOptions, stream: stream.Writable): Logger
levels: {
values: LevelLabelsToValues
labels: LevelValuesToLabels
}
LOG_VERSION: number
pretty(opts?: {timeTransOnly?: boolean}): stream.Readable
}
type LevelChangeEventListener = (lvl: string, val: number, prevLvl: string, prevVal: number) => void
type LevelChangeEvent = 'level-change'
interface Logger {
child(bindings: Object): this
level: string // 'fatal' | 'error' | 'warn' | 'info' | 'debug' | 'trace'
fatal(msg: string, ...args : any[]): void
fatal(obj: Object, msg: string, ...args : any[]): void
fatal(obj: Object): void
error(msg: string, ...args : any[]): void
error(obj: Object, msg: string, ...args : any[]): void
error(obj: Object): void
warn(msg: string, ...args : any[]): void
warn(obj: Object, msg: string, ...args : any[]): void
warn(obj: Object): void
child(bindings: {}): Logger
level: Level
levelVal: number
on(event: LevelChangeEvent, listener: LevelChangeEventListener): void
fatal(obj: {}): void
fatal(obj: {}, msg?: string, ...args : any[]): void
error(obj: {}): void
error(obj: {}, msg?: string, ...args : any[]): void
warn(obj: {}): void
warn(obj: {}, msg?: string, ...args : any[]): void
info(msg: string, ...args : any[]): void
info(obj: Object, msg: string, ...args : any[]): void
info(obj: Object): void
debug(msg: string, ...args : any[]): void
debug(obj: Object, msg: string, ...args : any[]): void
debug(obj: Object): void
trace(msg: string, ...args : any[]): void
trace(obj: Object, msg: string, ...args : any[]): void
trace(obj: Object): void
info(obj: {}, msg?: string, ...args : any[]): void
debug(obj: {}): void
debug(obj: {}, msg?: string, ...args : any[]): void
trace(obj: {}): void
trace(obj: {}, msg?: string, ...args : any[]): void
levels: {
values: LevelLabelsToValues
labels: LevelValuesToLabels
}
LOG_VERSION: number
stdSerializers: Serializers
}