Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Logging gjøres ved å bruke ulike implementasjoner av ILogger, som er definert som følger:

 

 

 

Code Block
package delegation;

public interface ILogger {
    public String ERROR = "error", WARNING = "warning", INFO = "info";
    public void log(String severity, String message, Exception exception);
}

...

Code Block
ILogger syserrLogger = new StreamLogger(System.err);
FilteringLogger logger = new FilteringLogger(syserrLogger, ILogger.ERROR);
logger.log(ILogger.ERROR, "Denne meldinger er alvorlig og skrives til System.err", null);
logger.log(ILogger.INFO, "Denne meldinger er til informasjon og blir filtrert bort", null);

...

I tillegg skal klassen ha metoder en metode for å sette hver av dem individuelt:

 

 

 

...

  • setLogger(String severity, ILogger logger) - setter/endrer loggeren som brukes for den angitt alvorlighetsgraden.

Eksempel på bruk:

Code Block
ILogger syserrLogger = new StreamLogger(System.err);
ILogger sysoutLogger = new StreamLogger(System.out);
DistributingLogger logger = new DistributingLogger(syserrLogger, syserrLogger, sysoutLogger);
logger.log(ILogger.ERROR, "Denne meldinger er alvorlig og skrives til System.err", null);
logger.log(ILogger.WARNING, "Denne meldinger er en advarsel og skrives til System.err", null);
logger.log(ILogger.INFO, "Denne meldinger er til informasjon og skrives til System.out", null);
logger.setLogger(ILogger.WARNING, sysoutLogger);
logger.log(ILogger.ERROR, "Denne meldinger er en advarsel, men nå skrives den til System.out", null);