001/*-------------------------------------------------------------------------+ 002| | 003| Copyright (c) 2009-2018 CQSE GmbH | 004| | 005+-------------------------------------------------------------------------*/ 006package org.conqat.lib.commons.logging; 007 008/** 009 * {@link ILogger} that wraps another logger and prints the given message once 010 * before any other message is printed. 011 */ 012public class WrappedLogger implements ILogger { 013 014 /** 015 * The message that is printed before any other message coming through this 016 * wrapper. 017 */ 018 private String prefixMessage; 019 020 /** Whether we already printed the message on Debug level */ 021 private boolean printedOnDebug = false; 022 /** Whether we already printed the message on Info level */ 023 private boolean printedOnInfo = false; 024 /** Whether we already printed the message on Warn level */ 025 private boolean printedOnWarn = false; 026 /** Whether we already printed the message on Error level */ 027 private boolean printedOnError = false; 028 029 /** This is the wrapped {@link ILogger} that we delegate log messages to. */ 030 private ILogger wrappedLogger; 031 032 /** Constructor. */ 033 public WrappedLogger(ILogger logger, String message) { 034 this.prefixMessage = message; 035 this.wrappedLogger = logger; 036 } 037 038 /** {@inheritDoc} */ 039 @Override 040 public void debug(Object message) { 041 if (!printedOnDebug) { 042 wrappedLogger.debug(prefixMessage); 043 printedOnDebug = true; 044 } 045 wrappedLogger.debug(message); 046 } 047 048 /** {@inheritDoc} */ 049 @Override 050 public void debug(Object message, Throwable throwable) { 051 if (!printedOnDebug) { 052 wrappedLogger.debug(prefixMessage); 053 printedOnDebug = true; 054 } 055 wrappedLogger.debug(message, throwable); 056 } 057 058 /** {@inheritDoc} */ 059 @Override 060 public void info(Object message) { 061 if (!printedOnInfo) { 062 wrappedLogger.info(prefixMessage); 063 printedOnInfo = true; 064 } 065 wrappedLogger.info(message); 066 } 067 068 /** {@inheritDoc} */ 069 @Override 070 public void info(Object message, Throwable throwable) { 071 if (!printedOnInfo) { 072 wrappedLogger.info(prefixMessage); 073 printedOnInfo = true; 074 } 075 wrappedLogger.info(message, throwable); 076 077 } 078 079 /** {@inheritDoc} */ 080 @Override 081 public void warn(Object message) { 082 if (!printedOnWarn) { 083 wrappedLogger.warn(prefixMessage); 084 printedOnWarn = true; 085 } 086 wrappedLogger.warn(message); 087 } 088 089 /** {@inheritDoc} */ 090 @Override 091 public void warn(Object message, Throwable throwable) { 092 if (!printedOnWarn) { 093 wrappedLogger.warn(prefixMessage); 094 printedOnWarn = true; 095 } 096 wrappedLogger.warn(message, throwable); 097 } 098 099 /** {@inheritDoc} */ 100 @Override 101 public void error(Object message) { 102 if (!printedOnError) { 103 wrappedLogger.error(prefixMessage); 104 printedOnError = true; 105 } 106 wrappedLogger.error(message); 107 } 108 109 /** {@inheritDoc} */ 110 @Override 111 public void error(Object message, Throwable throwable) { 112 if (!printedOnError) { 113 wrappedLogger.error(prefixMessage); 114 printedOnError = true; 115 } 116 wrappedLogger.error(message, throwable); 117 } 118 119}