/**
* Licensed to Apereo under one or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information regarding copyright ownership. Apereo
* licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use
* this file except in compliance with the License. You may obtain a copy of the License at the
* following location:
*
* <p>http://www.apache.org/licenses/LICENSE-2.0
*
* <p>Unless required by applicable law or agreed to in writing, software distributed under the
* License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apereo.portal.logging;
import java.io.IOException;
import java.io.Writer;
import org.apache.commons.lang.Validate;
import org.slf4j.Logger;
import org.slf4j.Marker;
/**
* Wraps an SLF4J Logger adding in the Appendable interface. Requires the log level to use when
* appending to be specified in the constructor
*
*/
public class AppendableLogger implements Appendable, Logger {
private final Writer loggingWriter;
private final Logger logger;
public AppendableLogger(Logger logger, LogLevel appendLevel) {
Validate.notNull(logger);
this.logger = logger;
this.loggingWriter = new LoggingWriter(logger, appendLevel);
}
/* (non-Javadoc)
* @see java.lang.Appendable#append(java.lang.CharSequence)
*/
@Override
public Appendable append(CharSequence csq) throws IOException {
this.loggingWriter.append(csq);
return this;
}
/* (non-Javadoc)
* @see java.lang.Appendable#append(java.lang.CharSequence, int, int)
*/
@Override
public Appendable append(CharSequence csq, int start, int end) throws IOException {
this.loggingWriter.append(csq, start, end);
return this;
}
/* (non-Javadoc)
* @see java.lang.Appendable#append(char)
*/
@Override
public Appendable append(char c) throws IOException {
this.loggingWriter.append(c);
return this;
}
/**
* @return
* @see org.slf4j.Logger#getName()
*/
@Override
public String getName() {
return this.logger.getName();
}
/**
* @return
* @see org.slf4j.Logger#isTraceEnabled()
*/
@Override
public boolean isTraceEnabled() {
return this.logger.isTraceEnabled();
}
/**
* @param msg
* @see org.slf4j.Logger#trace(java.lang.String)
*/
@Override
public void trace(String msg) {
this.logger.trace(msg);
}
/**
* @param format
* @param arg
* @see org.slf4j.Logger#trace(java.lang.String, java.lang.Object)
*/
@Override
public void trace(String format, Object arg) {
this.logger.trace(format, arg);
}
/**
* @param format
* @param arg1
* @param arg2
* @see org.slf4j.Logger#trace(java.lang.String, java.lang.Object, java.lang.Object)
*/
@Override
public void trace(String format, Object arg1, Object arg2) {
this.logger.trace(format, arg1, arg2);
}
/**
* @param format
* @param argArray
* @see org.slf4j.Logger#trace(java.lang.String, java.lang.Object[])
*/
@Override
public void trace(String format, Object[] argArray) {
this.logger.trace(format, argArray);
}
/**
* @param msg
* @param t
* @see org.slf4j.Logger#trace(java.lang.String, java.lang.Throwable)
*/
@Override
public void trace(String msg, Throwable t) {
this.logger.trace(msg, t);
}
/**
* @param marker
* @return
* @see org.slf4j.Logger#isTraceEnabled(org.slf4j.Marker)
*/
@Override
public boolean isTraceEnabled(Marker marker) {
return this.logger.isTraceEnabled(marker);
}
/**
* @param marker
* @param msg
* @see org.slf4j.Logger#trace(org.slf4j.Marker, java.lang.String)
*/
@Override
public void trace(Marker marker, String msg) {
this.logger.trace(marker, msg);
}
/**
* @param marker
* @param format
* @param arg
* @see org.slf4j.Logger#trace(org.slf4j.Marker, java.lang.String, java.lang.Object)
*/
@Override
public void trace(Marker marker, String format, Object arg) {
this.logger.trace(marker, format, arg);
}
/**
* @param marker
* @param format
* @param arg1
* @param arg2
* @see org.slf4j.Logger#trace(org.slf4j.Marker, java.lang.String, java.lang.Object,
* java.lang.Object)
*/
@Override
public void trace(Marker marker, String format, Object arg1, Object arg2) {
this.logger.trace(marker, format, arg1, arg2);
}
/**
* @param marker
* @param format
* @param argArray
* @see org.slf4j.Logger#trace(org.slf4j.Marker, java.lang.String, java.lang.Object[])
*/
@Override
public void trace(Marker marker, String format, Object[] argArray) {
this.logger.trace(marker, format, argArray);
}
/**
* @param marker
* @param msg
* @param t
* @see org.slf4j.Logger#trace(org.slf4j.Marker, java.lang.String, java.lang.Throwable)
*/
@Override
public void trace(Marker marker, String msg, Throwable t) {
this.logger.trace(marker, msg, t);
}
/**
* @return
* @see org.slf4j.Logger#isDebugEnabled()
*/
@Override
public boolean isDebugEnabled() {
return this.logger.isDebugEnabled();
}
/**
* @param msg
* @see org.slf4j.Logger#debug(java.lang.String)
*/
@Override
public void debug(String msg) {
this.logger.debug(msg);
}
/**
* @param format
* @param arg
* @see org.slf4j.Logger#debug(java.lang.String, java.lang.Object)
*/
@Override
public void debug(String format, Object arg) {
this.logger.debug(format, arg);
}
/**
* @param format
* @param arg1
* @param arg2
* @see org.slf4j.Logger#debug(java.lang.String, java.lang.Object, java.lang.Object)
*/
@Override
public void debug(String format, Object arg1, Object arg2) {
this.logger.debug(format, arg1, arg2);
}
/**
* @param format
* @param argArray
* @see org.slf4j.Logger#debug(java.lang.String, java.lang.Object[])
*/
@Override
public void debug(String format, Object[] argArray) {
this.logger.debug(format, argArray);
}
/**
* @param msg
* @param t
* @see org.slf4j.Logger#debug(java.lang.String, java.lang.Throwable)
*/
@Override
public void debug(String msg, Throwable t) {
this.logger.debug(msg, t);
}
/**
* @param marker
* @return
* @see org.slf4j.Logger#isDebugEnabled(org.slf4j.Marker)
*/
@Override
public boolean isDebugEnabled(Marker marker) {
return this.logger.isDebugEnabled(marker);
}
/**
* @param marker
* @param msg
* @see org.slf4j.Logger#debug(org.slf4j.Marker, java.lang.String)
*/
@Override
public void debug(Marker marker, String msg) {
this.logger.debug(marker, msg);
}
/**
* @param marker
* @param format
* @param arg
* @see org.slf4j.Logger#debug(org.slf4j.Marker, java.lang.String, java.lang.Object)
*/
@Override
public void debug(Marker marker, String format, Object arg) {
this.logger.debug(marker, format, arg);
}
/**
* @param marker
* @param format
* @param arg1
* @param arg2
* @see org.slf4j.Logger#debug(org.slf4j.Marker, java.lang.String, java.lang.Object,
* java.lang.Object)
*/
@Override
public void debug(Marker marker, String format, Object arg1, Object arg2) {
this.logger.debug(marker, format, arg1, arg2);
}
/**
* @param marker
* @param format
* @param argArray
* @see org.slf4j.Logger#debug(org.slf4j.Marker, java.lang.String, java.lang.Object[])
*/
@Override
public void debug(Marker marker, String format, Object[] argArray) {
this.logger.debug(marker, format, argArray);
}
/**
* @param marker
* @param msg
* @param t
* @see org.slf4j.Logger#debug(org.slf4j.Marker, java.lang.String, java.lang.Throwable)
*/
@Override
public void debug(Marker marker, String msg, Throwable t) {
this.logger.debug(marker, msg, t);
}
/**
* @return
* @see org.slf4j.Logger#isInfoEnabled()
*/
@Override
public boolean isInfoEnabled() {
return this.logger.isInfoEnabled();
}
/**
* @param msg
* @see org.slf4j.Logger#info(java.lang.String)
*/
@Override
public void info(String msg) {
this.logger.info(msg);
}
/**
* @param format
* @param arg
* @see org.slf4j.Logger#info(java.lang.String, java.lang.Object)
*/
@Override
public void info(String format, Object arg) {
this.logger.info(format, arg);
}
/**
* @param format
* @param arg1
* @param arg2
* @see org.slf4j.Logger#info(java.lang.String, java.lang.Object, java.lang.Object)
*/
@Override
public void info(String format, Object arg1, Object arg2) {
this.logger.info(format, arg1, arg2);
}
/**
* @param format
* @param argArray
* @see org.slf4j.Logger#info(java.lang.String, java.lang.Object[])
*/
@Override
public void info(String format, Object[] argArray) {
this.logger.info(format, argArray);
}
/**
* @param msg
* @param t
* @see org.slf4j.Logger#info(java.lang.String, java.lang.Throwable)
*/
@Override
public void info(String msg, Throwable t) {
this.logger.info(msg, t);
}
/**
* @param marker
* @return
* @see org.slf4j.Logger#isInfoEnabled(org.slf4j.Marker)
*/
@Override
public boolean isInfoEnabled(Marker marker) {
return this.logger.isInfoEnabled(marker);
}
/**
* @param marker
* @param msg
* @see org.slf4j.Logger#info(org.slf4j.Marker, java.lang.String)
*/
@Override
public void info(Marker marker, String msg) {
this.logger.info(marker, msg);
}
/**
* @param marker
* @param format
* @param arg
* @see org.slf4j.Logger#info(org.slf4j.Marker, java.lang.String, java.lang.Object)
*/
@Override
public void info(Marker marker, String format, Object arg) {
this.logger.info(marker, format, arg);
}
/**
* @param marker
* @param format
* @param arg1
* @param arg2
* @see org.slf4j.Logger#info(org.slf4j.Marker, java.lang.String, java.lang.Object,
* java.lang.Object)
*/
@Override
public void info(Marker marker, String format, Object arg1, Object arg2) {
this.logger.info(marker, format, arg1, arg2);
}
/**
* @param marker
* @param format
* @param argArray
* @see org.slf4j.Logger#info(org.slf4j.Marker, java.lang.String, java.lang.Object[])
*/
@Override
public void info(Marker marker, String format, Object[] argArray) {
this.logger.info(marker, format, argArray);
}
/**
* @param marker
* @param msg
* @param t
* @see org.slf4j.Logger#info(org.slf4j.Marker, java.lang.String, java.lang.Throwable)
*/
@Override
public void info(Marker marker, String msg, Throwable t) {
this.logger.info(marker, msg, t);
}
/**
* @return
* @see org.slf4j.Logger#isWarnEnabled()
*/
@Override
public boolean isWarnEnabled() {
return this.logger.isWarnEnabled();
}
/**
* @param msg
* @see org.slf4j.Logger#warn(java.lang.String)
*/
@Override
public void warn(String msg) {
this.logger.warn(msg);
}
/**
* @param format
* @param arg
* @see org.slf4j.Logger#warn(java.lang.String, java.lang.Object)
*/
@Override
public void warn(String format, Object arg) {
this.logger.warn(format, arg);
}
/**
* @param format
* @param argArray
* @see org.slf4j.Logger#warn(java.lang.String, java.lang.Object[])
*/
@Override
public void warn(String format, Object[] argArray) {
this.logger.warn(format, argArray);
}
/**
* @param format
* @param arg1
* @param arg2
* @see org.slf4j.Logger#warn(java.lang.String, java.lang.Object, java.lang.Object)
*/
@Override
public void warn(String format, Object arg1, Object arg2) {
this.logger.warn(format, arg1, arg2);
}
/**
* @param msg
* @param t
* @see org.slf4j.Logger#warn(java.lang.String, java.lang.Throwable)
*/
@Override
public void warn(String msg, Throwable t) {
this.logger.warn(msg, t);
}
/**
* @param marker
* @return
* @see org.slf4j.Logger#isWarnEnabled(org.slf4j.Marker)
*/
@Override
public boolean isWarnEnabled(Marker marker) {
return this.logger.isWarnEnabled(marker);
}
/**
* @param marker
* @param msg
* @see org.slf4j.Logger#warn(org.slf4j.Marker, java.lang.String)
*/
@Override
public void warn(Marker marker, String msg) {
this.logger.warn(marker, msg);
}
/**
* @param marker
* @param format
* @param arg
* @see org.slf4j.Logger#warn(org.slf4j.Marker, java.lang.String, java.lang.Object)
*/
@Override
public void warn(Marker marker, String format, Object arg) {
this.logger.warn(marker, format, arg);
}
/**
* @param marker
* @param format
* @param arg1
* @param arg2
* @see org.slf4j.Logger#warn(org.slf4j.Marker, java.lang.String, java.lang.Object,
* java.lang.Object)
*/
@Override
public void warn(Marker marker, String format, Object arg1, Object arg2) {
this.logger.warn(marker, format, arg1, arg2);
}
/**
* @param marker
* @param format
* @param argArray
* @see org.slf4j.Logger#warn(org.slf4j.Marker, java.lang.String, java.lang.Object[])
*/
@Override
public void warn(Marker marker, String format, Object[] argArray) {
this.logger.warn(marker, format, argArray);
}
/**
* @param marker
* @param msg
* @param t
* @see org.slf4j.Logger#warn(org.slf4j.Marker, java.lang.String, java.lang.Throwable)
*/
@Override
public void warn(Marker marker, String msg, Throwable t) {
this.logger.warn(marker, msg, t);
}
/**
* @return
* @see org.slf4j.Logger#isErrorEnabled()
*/
@Override
public boolean isErrorEnabled() {
return this.logger.isErrorEnabled();
}
/**
* @param msg
* @see org.slf4j.Logger#error(java.lang.String)
*/
@Override
public void error(String msg) {
this.logger.error(msg);
}
/**
* @param format
* @param arg
* @see org.slf4j.Logger#error(java.lang.String, java.lang.Object)
*/
@Override
public void error(String format, Object arg) {
this.logger.error(format, arg);
}
/**
* @param format
* @param arg1
* @param arg2
* @see org.slf4j.Logger#error(java.lang.String, java.lang.Object, java.lang.Object)
*/
@Override
public void error(String format, Object arg1, Object arg2) {
this.logger.error(format, arg1, arg2);
}
/**
* @param format
* @param argArray
* @see org.slf4j.Logger#error(java.lang.String, java.lang.Object[])
*/
@Override
public void error(String format, Object[] argArray) {
this.logger.error(format, argArray);
}
/**
* @param msg
* @param t
* @see org.slf4j.Logger#error(java.lang.String, java.lang.Throwable)
*/
@Override
public void error(String msg, Throwable t) {
this.logger.error(msg, t);
}
/**
* @param marker
* @return
* @see org.slf4j.Logger#isErrorEnabled(org.slf4j.Marker)
*/
@Override
public boolean isErrorEnabled(Marker marker) {
return this.logger.isErrorEnabled(marker);
}
/**
* @param marker
* @param msg
* @see org.slf4j.Logger#error(org.slf4j.Marker, java.lang.String)
*/
@Override
public void error(Marker marker, String msg) {
this.logger.error(marker, msg);
}
/**
* @param marker
* @param format
* @param arg
* @see org.slf4j.Logger#error(org.slf4j.Marker, java.lang.String, java.lang.Object)
*/
@Override
public void error(Marker marker, String format, Object arg) {
this.logger.error(marker, format, arg);
}
/**
* @param marker
* @param format
* @param arg1
* @param arg2
* @see org.slf4j.Logger#error(org.slf4j.Marker, java.lang.String, java.lang.Object,
* java.lang.Object)
*/
@Override
public void error(Marker marker, String format, Object arg1, Object arg2) {
this.logger.error(marker, format, arg1, arg2);
}
/**
* @param marker
* @param format
* @param argArray
* @see org.slf4j.Logger#error(org.slf4j.Marker, java.lang.String, java.lang.Object[])
*/
@Override
public void error(Marker marker, String format, Object[] argArray) {
this.logger.error(marker, format, argArray);
}
/**
* @param marker
* @param msg
* @param t
* @see org.slf4j.Logger#error(org.slf4j.Marker, java.lang.String, java.lang.Throwable)
*/
@Override
public void error(Marker marker, String msg, Throwable t) {
this.logger.error(marker, msg, t);
}
}