forked from DefinitelyTyped/DefinitelyTyped
-
Notifications
You must be signed in to change notification settings - Fork 0
/
log4js.d.ts
139 lines (118 loc) · 3.9 KB
/
log4js.d.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
// Type definitions for log4js
// Project: https://github.com/nomiddlename/log4js-node
// Definitions by: Kentaro Okuno <http://github.com/armorik83>
// Definitions: https://github.com/borisyankov/DefinitelyTyped
/// <reference path="../express/express.d.ts" />
declare module "log4js" {
import express = require('express');
/**
* Get a logger instance. Instance is cached on categoryName level.
*
* @param {String} [categoryName] name of category to log to.
* @returns {Logger} instance of logger for the category
* @static
*/
export function getLogger(categoryName?: string): Logger;
export function getBufferedLogger(categoryName?: string): Logger;
/**
* Has a logger instance cached on categoryName.
*
* @param {String} [categoryName] name of category to log to.
* @returns {boolean} contains logger for the category
* @static
*/
export function hasLogger(categoryName: string): boolean;
/**
* Get the default logger instance.
*
* @returns {Logger} instance of default logger
* @static
*/
export function getDefaultLogger(): Logger;
/**
* args are appender, then zero or more categories
*
* @param {*[]} appenders
* @returns {void}
* @static
*/
export function addAppender(...appenders: any[]): void;
/**
* Claer configured appenders
*
* @returns {void}
* @static
*/
export function clearAppenders(): void;
/**
* Shutdown all log appenders. This will first disable all writing to appenders
* and then call the shutdown function each appender.
*
* @params {Function} cb - The callback to be invoked once all appenders have
* shutdown. If an error occurs, the callback will be given the error object
* as the first argument.
* @returns {void}
*/
export function shutdown(cb: Function): void;
export function configure(config: IConfig, options?: any): void;
export function configure(filename: string, options?: any): void;
export function setGlobalLogLevel(level: string): void;
export function setGlobalLogLevel(level: Level): void;
/**
* Create logger for connect middleware.
*
*
* @returns {express.Handler} Instance of middleware.
* @static
*/
export function connectLogger(logger: Logger, options: { format?: string; level?: string; nolog?: any; }): express.Handler;
export function connectLogger(logger: Logger, options: { format?: string; level?: Level; nolog?: any; }): express.Handler;
export var appenders: any;
export var levels: {
ALL: Level;
TRACE: Level;
DEBUG: Level;
INFO: Level;
WARN: Level;
ERROR: Level;
FATAL: Level;
OFF: Level;
toLevel(level: string, defaultLevel?: Level): Level;
toLevel(level: Level, defaultLevel?: Level): Level;
};
export interface Logger {
setLevel(level: string): void;
setLevel(level: Level): void;
isLevelEnabled(level: Level): boolean;
isTraceEnabled(): boolean;
isDebugEnabled(): boolean;
isInfoEnabled(): boolean;
isWarnEnabled(): boolean;
isErrorEnabled(): boolean;
isFatalEnabled(): boolean;
trace(message: string, ...args: any[]): void;
debug(message: string, ...args: any[]): void;
info(message: string, ...args: any[]): void;
warn(message: string, ...args: any[]): void;
error(message: string, ...args: any[]): void;
fatal(message: string, ...args: any[]): void;
}
export interface Level {
isEqualTo(other: string): boolean;
isEqualTo(otherLevel: Level): boolean;
isLessThanOrEqualTo(other: string): boolean;
isLessThanOrEqualTo(otherLevel: Level): boolean;
isGreaterThanOrEqualTo(other: string): boolean;
isGreaterThanOrEqualTo(otherLevel: Level): boolean;
}
export interface IConfig {
appenders: IAppenderConfig[];
levels?: { [category: string]: string };
replaceConsole?: boolean;
}
export interface IAppenderConfig {
type: string;
category?: string[];
// etc...
}
}