mirror of
https://github.com/log4js-node/log4js-node.git
synced 2025-12-08 19:26:01 +00:00
trying out weak references, don't think they're going to help
This commit is contained in:
parent
9c510f7705
commit
9897dcbc93
@ -44,6 +44,7 @@
|
||||
* Website: http://log4js.berlios.de
|
||||
*/
|
||||
var debug = require('./debug')('core')
|
||||
, weak = require('weak')
|
||||
, fs = require('fs')
|
||||
, path = require('path')
|
||||
, util = require('util')
|
||||
@ -51,7 +52,9 @@ var debug = require('./debug')('core')
|
||||
, levels = require('./levels')
|
||||
, LoggingEvent = require('./logger').LoggingEvent
|
||||
, Logger = require('./logger').Logger
|
||||
, loggerRefs = []
|
||||
, categoryLevels = {}
|
||||
, globalLogLevel = null
|
||||
, ALL_CATEGORIES = '[all]'
|
||||
, appenders = {}
|
||||
, appenderMakers = {}
|
||||
@ -63,21 +66,31 @@ var debug = require('./debug')('core')
|
||||
};
|
||||
|
||||
/**
|
||||
* Get a logger instance. Instance is cached on categoryName level.
|
||||
* Get a logger instance.
|
||||
* @param {String} categoryName name of category to log to.
|
||||
* @return {Logger} instance of logger for the category
|
||||
* @static
|
||||
*/
|
||||
function getLogger (categoryName) {
|
||||
var level, logger, ref;
|
||||
|
||||
// Use default logger if categoryName is not specified or invalid
|
||||
if (typeof categoryName !== "string") {
|
||||
categoryName = Logger.DEFAULT_CATEGORY;
|
||||
}
|
||||
|
||||
debug("getLogger(" + categoryName + ")");
|
||||
level = categoryLevels[categoryName];
|
||||
|
||||
return new Logger(categoryName, categoryLevels[categoryName] || null, dispatch);
|
||||
if (globalLogLevel) {
|
||||
level = globalLogLevel;
|
||||
}
|
||||
|
||||
debug("getLogger(" + categoryName + ") - level is " + level);
|
||||
logger = new Logger(categoryName, level || null, dispatch);
|
||||
ref = weak(logger);
|
||||
loggerRefs.push(ref);
|
||||
|
||||
return logger;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -134,7 +147,16 @@ function configureLevels(levels) {
|
||||
}
|
||||
|
||||
function setGlobalLogLevel(level) {
|
||||
Logger.prototype.level = levels.toLevel(level, levels.TRACE);
|
||||
//Logger.prototype.level = levels.toLevel(level, levels.TRACE);
|
||||
globalLogLevel = level;
|
||||
var workingRefs = [];
|
||||
loggerRefs.forEach(function(logger) {
|
||||
if (logger.setLevel) {
|
||||
workingRefs.push(logger);
|
||||
logger.setLevel(level);
|
||||
}
|
||||
});
|
||||
loggerRefs = workingRefs;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user