...
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); |