message: Calling Logger.getLogger() with the same instance object twice will return the same logger instance
diff: @@ -15,6 +15,9 @@ const instanceCounter = new Map<string, number>();
  const instanceNames = new WeakMap<any, string>(); // Maps objects to the names used by their loggers.
  +const loggersMap = new WeakMap<any, Logger>();
  +
  +
  type Level = 'DEBUG' | 'INFO' | 'WARN' | 'SEVERE';
  @@ -112,6 +115,15 @@ export interface Logger {
  export function getLogger(name?: string, instance?: any): Logger {
  + if (instance != null) {
  + if (loggersMap.has(instance)) {
  + return loggersMap.get(instance);
  + }
  + const logger = new LoggerImpl(name, instance);
  + loggersMap.set(instance, logger);
  + return logger;
  + }
  +
  return new LoggerImpl(name, instance);
  }
  