From 9bd9c2e52e2b9783d0503c63c20c456de6d5a274 Mon Sep 17 00:00:00 2001 From: Horiuchi_H Date: Thu, 25 Dec 2014 17:27:08 +0900 Subject: [PATCH] add a definition that was not enough --- log4js/log4js-tests.ts | 31 +++++++++++++++ log4js/log4js.d.ts | 85 ++++++++++++++++++++++++++++++++++++++---- 2 files changed, 109 insertions(+), 7 deletions(-) diff --git a/log4js/log4js-tests.ts b/log4js/log4js-tests.ts index e18ad7862..8540b6f21 100644 --- a/log4js/log4js-tests.ts +++ b/log4js/log4js-tests.ts @@ -1,4 +1,6 @@ /// +/// + import log4js = require('log4js'); log4js.addAppender(log4js.appenders.file('logs/cheese.log'), 'cheese'); @@ -25,3 +27,32 @@ log4js.configure({ var defaultLogger = log4js.getDefaultLogger(); defaultLogger.debug('Got cheese.'); + + +import express = require('express'); +var app = express(); +app.configure(() => { + app.use(log4js.connectLogger(logger, { level: log4js.levels.INFO, format: ':method :url' })); +}); +app.get('/', function(req, res) { + res.send('hello world'); +}); +app.listen(5000); + +log4js.configure({ + "appenders": [ + { + "type": "console", + "layout": { + "type": "pattern", + "pattern": "%d %p %c - %m" + } + } + ], + "levels": { + "[all]": "INFO", + "category1": "ERROR", + "category2": "DEBUG" + } +}); + diff --git a/log4js/log4js.d.ts b/log4js/log4js.d.ts index 869a10c58..aa99aad67 100644 --- a/log4js/log4js.d.ts +++ b/log4js/log4js.d.ts @@ -4,6 +4,8 @@ // Definitions: https://github.com/borisyankov/DefinitelyTyped declare module "log4js" { + import express = require('express'); + /** * Get a logger instance. Instance is cached on categoryName level. * @@ -12,9 +14,20 @@ declare module "log4js" { * @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 */ @@ -29,6 +42,14 @@ declare module "log4js" { */ 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. @@ -40,18 +61,68 @@ declare module "log4js" { */ export function shutdown(cb: Function): void; - export function configure(config: any, options?: any): void; + export function configure(config: IConfig, 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; - trace(message: string): void; - debug(message: string): void; - info(message: string): void; - warn(message: string): void; - error(message: string): void; - fatal(message: string): void; + 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... } } +