зеркало из https://github.com/mozilla/gecko-dev.git
log4moz api change: Log4Moz.Service is gone. There is now a Log4Moz.repository which will auto-instantiate to a LoggerRepository (but can also be set if one wishes to use a different one). Also includes some other minor changes, e.g. formatters are now optional (and default to a BasicFormatter if not provided)
This commit is contained in:
Родитель
039bc89a8c
Коммит
e7ff943d3a
|
@ -80,14 +80,23 @@ let Log4Moz = {
|
|||
}
|
||||
},
|
||||
|
||||
get Service() {
|
||||
delete Log4Moz.Service;
|
||||
Log4Moz.Service = new Log4MozService();
|
||||
return Log4Moz.Service;
|
||||
get repository() {
|
||||
delete Log4Moz.repository;
|
||||
Log4Moz.repository = new LoggerRepository();
|
||||
return Log4Moz.repository;
|
||||
},
|
||||
set repository(value) {
|
||||
delete Log4Moz.repository;
|
||||
Log4Moz.repository = value;
|
||||
},
|
||||
|
||||
get LogMessage() { return LogMessage; },
|
||||
get Logger() { return Logger; },
|
||||
get LoggerRepository() { return LoggerRepository; },
|
||||
|
||||
get Formatter() { return Formatter; },
|
||||
get BasicFormatter() { return BasicFormatter; },
|
||||
|
||||
get Appender() { return Appender; },
|
||||
get DumpAppender() { return DumpAppender; },
|
||||
get ConsoleAppender() { return ConsoleAppender; },
|
||||
|
@ -95,9 +104,9 @@ let Log4Moz = {
|
|||
get RotatingFileAppender() { return RotatingFileAppender; },
|
||||
|
||||
// Logging helper:
|
||||
// let logger = Log4Moz.Service.getLogger("foo");
|
||||
// let logger = Log4Moz.repository.getLogger("foo");
|
||||
// logger.info(Log4Moz.enumerateInterfaces(someObject).join(","));
|
||||
enumerateInterfaces: function(aObject) {
|
||||
enumerateInterfaces: function Log4Moz_enumerateInterfaces(aObject) {
|
||||
let interfaces = [];
|
||||
|
||||
for (i in Ci) {
|
||||
|
@ -112,9 +121,10 @@ let Log4Moz = {
|
|||
},
|
||||
|
||||
// Logging helper:
|
||||
// let logger = Log4Moz.Service.getLogger("foo");
|
||||
// let logger = Log4Moz.repository.getLogger("foo");
|
||||
// logger.info(Log4Moz.enumerateProperties(someObject).join(","));
|
||||
enumerateProperties: function(aObject, aExcludeComplexTypes) {
|
||||
enumerateProperties: function Log4Moz_enumerateProps(aObject,
|
||||
aExcludeComplexTypes) {
|
||||
let properties = [];
|
||||
|
||||
for (p in aObject) {
|
||||
|
@ -165,15 +175,25 @@ LogMessage.prototype = {
|
|||
*/
|
||||
|
||||
function Logger(name, repository) {
|
||||
this._name = name;
|
||||
this._repository = repository;
|
||||
this._appenders = [];
|
||||
this._init(name, repository);
|
||||
}
|
||||
Logger.prototype = {
|
||||
_init: function Logger__init(name, repository) {
|
||||
if (!repository)
|
||||
repository = Log4Moz.repository;
|
||||
this._name = name;
|
||||
this._appenders = [];
|
||||
this._repository = repository;
|
||||
},
|
||||
|
||||
QueryInterface: XPCOMUtils.generateQI([Ci.nsISupports]),
|
||||
|
||||
parent: null,
|
||||
|
||||
get name() {
|
||||
return this._name;
|
||||
},
|
||||
|
||||
_level: null,
|
||||
get level() {
|
||||
if (this._level != null)
|
||||
|
@ -286,10 +306,12 @@ LoggerRepository.prototype = {
|
|||
},
|
||||
|
||||
getLogger: function LogRep_getLogger(name) {
|
||||
if (!(name in this._loggers)) {
|
||||
this._loggers[name] = new Logger(name, this);
|
||||
this._updateParents(name);
|
||||
}
|
||||
if (!name)
|
||||
name = this.getLogger.caller.name;
|
||||
if (name in this._loggers)
|
||||
return this._loggers[name];
|
||||
this._loggers[name] = new Logger(name, this);
|
||||
this._updateParents(name);
|
||||
return this._loggers[name];
|
||||
}
|
||||
};
|
||||
|
@ -313,6 +335,8 @@ function BasicFormatter(dateFormat) {
|
|||
this.dateFormat = dateFormat;
|
||||
}
|
||||
BasicFormatter.prototype = {
|
||||
__proto__: Formatter.prototype,
|
||||
|
||||
_dateFormat: null,
|
||||
|
||||
get dateFormat() {
|
||||
|
@ -332,7 +356,6 @@ BasicFormatter.prototype = {
|
|||
message.message + "\n";
|
||||
}
|
||||
};
|
||||
BasicFormatter.prototype.__proto__ = new Formatter();
|
||||
|
||||
/*
|
||||
* Appenders
|
||||
|
@ -369,14 +392,15 @@ Appender.prototype = {
|
|||
|
||||
function DumpAppender(formatter) {
|
||||
this._name = "DumpAppender";
|
||||
this._formatter = formatter;
|
||||
this._formatter = formatter? formatter : new BasicFormatter();
|
||||
}
|
||||
DumpAppender.prototype = {
|
||||
__proto__: Appender.prototype,
|
||||
|
||||
doAppend: function DApp_doAppend(message) {
|
||||
dump(message);
|
||||
}
|
||||
};
|
||||
DumpAppender.prototype.__proto__ = new Appender();
|
||||
|
||||
/*
|
||||
* ConsoleAppender
|
||||
|
@ -388,6 +412,8 @@ function ConsoleAppender(formatter) {
|
|||
this._formatter = formatter;
|
||||
}
|
||||
ConsoleAppender.prototype = {
|
||||
__proto__: Appender.prototype,
|
||||
|
||||
doAppend: function CApp_doAppend(message) {
|
||||
if (message.level > Log4Moz.Level.Warn) {
|
||||
Cu.reportError(message);
|
||||
|
@ -397,7 +423,6 @@ ConsoleAppender.prototype = {
|
|||
getService(Ci.nsIConsoleService).logStringMessage(message);
|
||||
}
|
||||
};
|
||||
ConsoleAppender.prototype.__proto__ = new Appender();
|
||||
|
||||
/*
|
||||
* FileAppender
|
||||
|
@ -407,9 +432,11 @@ ConsoleAppender.prototype.__proto__ = new Appender();
|
|||
function FileAppender(file, formatter) {
|
||||
this._name = "FileAppender";
|
||||
this._file = file; // nsIFile
|
||||
this._formatter = formatter;
|
||||
this._formatter = formatter? formatter : new BasicFormatter();
|
||||
}
|
||||
FileAppender.prototype = {
|
||||
__proto__: Appender.prototype,
|
||||
|
||||
__fos: null,
|
||||
get _fos() {
|
||||
if (!this.__fos)
|
||||
|
@ -450,7 +477,6 @@ FileAppender.prototype = {
|
|||
this._file.remove(false);
|
||||
}
|
||||
};
|
||||
FileAppender.prototype.__proto__ = new Appender();
|
||||
|
||||
/*
|
||||
* RotatingFileAppender
|
||||
|
@ -466,11 +492,13 @@ function RotatingFileAppender(file, formatter, maxSize, maxBackups) {
|
|||
|
||||
this._name = "RotatingFileAppender";
|
||||
this._file = file; // nsIFile
|
||||
this._formatter = formatter;
|
||||
this._formatter = formatter? formatter : new BasicFormatter();
|
||||
this._maxSize = maxSize;
|
||||
this._maxBackups = maxBackups;
|
||||
}
|
||||
RotatingFileAppender.prototype = {
|
||||
__proto__: FileAppender.prototype,
|
||||
|
||||
doAppend: function RFApp_doAppend(message) {
|
||||
if (message === null || message.length <= 0)
|
||||
return;
|
||||
|
@ -502,26 +530,3 @@ RotatingFileAppender.prototype = {
|
|||
// Note: this._file still points to the same file
|
||||
}
|
||||
};
|
||||
RotatingFileAppender.prototype.__proto__ = new FileAppender();
|
||||
|
||||
/*
|
||||
* LoggingService
|
||||
*/
|
||||
|
||||
function Log4MozService() {
|
||||
this._repository = new LoggerRepository();
|
||||
}
|
||||
Log4MozService.prototype = {
|
||||
//classDescription: "Log4moz Logging Service",
|
||||
//contractID: "@mozilla.org/log4moz/service;1",
|
||||
//classID: Components.ID("{a60e50d7-90b8-4a12-ad0c-79e6a1896978}"),
|
||||
QueryInterface: XPCOMUtils.generateQI([Ci.nsISupports]),
|
||||
|
||||
get rootLogger() {
|
||||
return this._repository.rootLogger;
|
||||
},
|
||||
|
||||
getLogger: function LogSvc_getLogger(name) {
|
||||
return this._repository.getLogger(name);
|
||||
}
|
||||
};
|
||||
|
|
Загрузка…
Ссылка в новой задаче