
Author: ravn Date: Mon Dec 1 14:03:23 2008 New Revision: 2044 Added: logback-incubator/trunk/logback-as400/src/main/java/ch/ logback-incubator/trunk/logback-as400/src/main/java/ch/qos/ logback-incubator/trunk/logback-as400/src/main/java/ch/qos/logback/ logback-incubator/trunk/logback-as400/src/main/java/ch/qos/logback/as400/ logback-incubator/trunk/logback-as400/src/main/java/ch/qos/logback/as400/io/ logback-incubator/trunk/logback-as400/src/main/java/ch/qos/logback/as400/io/FixedWidthPrintStream.java logback-incubator/trunk/logback-as400/src/main/java/ch/qos/logback/as400/print/ logback-incubator/trunk/logback-as400/src/main/java/ch/qos/logback/as400/print/QPrintAppender.java Log: initial skeletons for QPrintAppender Added: logback-incubator/trunk/logback-as400/src/main/java/ch/qos/logback/as400/io/FixedWidthPrintStream.java ============================================================================== --- (empty file) +++ logback-incubator/trunk/logback-as400/src/main/java/ch/qos/logback/as400/io/FixedWidthPrintStream.java Mon Dec 1 14:03:23 2008 @@ -0,0 +1,85 @@ +package ch.qos.logback.as400.io; + +import java.io.OutputStream; +import java.io.PrintStream; + +/** + * FixedWidthPrintStream is a stream wrapper which ensures that the output does + * not get wider than the specified number of columns. + * + */ +public class FixedWidthPrintStream { + + protected static final int BEFORE_COLUMN_ZERO = -1; + + private String indent = " +"; + private int wrapColumn = 79; + private PrintStream originalStream; + + private PrintStream thisStream; + /** + * @param originalStream + * @param wrapColumn - first column is column 0. + * @param indent + */ + + public PrintStream getStream() { + if (thisStream == null) { + thisStream = new PrintStream(new OutputStream() { + + // Next char will go in 0 + int currentColumn = BEFORE_COLUMN_ZERO; + + public void write(int b) { + originalStream.write(b); + currentColumn = currentColumn + 1; + + if (b == '\n') { + currentColumn = BEFORE_COLUMN_ZERO; + } else if (currentColumn >= wrapColumn) { + originalStream.write('\n'); + currentColumn = BEFORE_COLUMN_ZERO; + for (int i = 0; i < indent.length(); i++) { + originalStream.write(indent.charAt(i)); + currentColumn = currentColumn + 1; + } + } + } + + public void close() { + originalStream.close(); + } + + public void flush() { + originalStream.flush(); + } + }); + } + return thisStream; + } + + public int getWrapColumn() { + return wrapColumn; + } + + public void setWrapColumn(int wrapColumn) { + this.wrapColumn = wrapColumn; + } + + public PrintStream getOriginalStream() { + return originalStream; + } + + public void setOriginalStream(PrintStream wrappedStream) { + this.originalStream = wrappedStream; + } + + public String getIndent() { + return indent; + } + + public void setIndent(String indent) { + this.indent = indent; + } + +} Added: logback-incubator/trunk/logback-as400/src/main/java/ch/qos/logback/as400/print/QPrintAppender.java ============================================================================== --- (empty file) +++ logback-incubator/trunk/logback-as400/src/main/java/ch/qos/logback/as400/print/QPrintAppender.java Mon Dec 1 14:03:23 2008 @@ -0,0 +1,20 @@ +package ch.qos.logback.as400.print; + +import ch.qos.logback.core.AppenderBase; + +/** + * + * + */ +public class QPrintAppender extends AppenderBase { + + + + @Override + protected void append(Object arg0) { + + } + + + +}