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...
}
}
+