src/main/java/com/aoindustries/io/buffer/LoggingResult.java
private void log(Writer writer) throws IOException {
		if(writer==null) {
			log.write("null");
		} else if(writer instanceof LoggingWriter) {
			LoggingWriter loggingWriter = (LoggingWriter)writer;
			log.write("writer[");
			log.write(Long.toString(loggingWriter.getId()));
			log.write(']');
		} else if(writer instanceof EncoderWriter) {
			EncoderWriter encoderWriter = (EncoderWriter)writer;
			log.write("new EncoderWriter(");
			log(encoderWriter.getEncoder());
			log.write(", ");
			log(encoderWriter.getOut());
			log.write(')');
		} else {
			String classname = writer.getClass().getName();
			if(classname.equals("org.apache.jasper.runtime.BodyContentImpl")) log.write("bodyContent");
			else if(classname.equals("org.apache.jasper.runtime.JspWriterImpl")) log.write("jspWriter");
			else log.write(classname);
		}
	}
private void log(Writer writer) throws IOException {
		if(writer==null) {
			log.write("null");
		} else if(writer instanceof LoggingWriter) {
			LoggingWriter loggingWriter = (LoggingWriter)writer;
			log.write("writer[");
			log.write(Long.toString(loggingWriter.getId()));
			log.write(']');
		} else if(writer instanceof EncoderWriter) {
			EncoderWriter encoderWriter = (EncoderWriter)writer;
			log.write("new EncoderWriter(");
			log(encoderWriter.getEncoder());
			log.write(", ");
			log(encoderWriter.getOut());
			log.write(')');
		} else {
			String classname = writer.getClass().getName();
			if(classname.equals("org.apache.jasper.runtime.BodyContentImpl")) log.write("bodyContent");
			else if(classname.equals("org.apache.jasper.runtime.JspWriterImpl")) log.write("jspWriter");
			else log.write(classname);
		}
	}
Provides detailed logging for a writer.