public void write(byte b[], int off, int len) throws IOException { int start = off; if (!logger.isLoggable(level)) return; len += off; for (int i = start; i < len ; i++) { if (b[i] == '\r') { expandCapacity(i - start); System.arraycopy(b, start, buf, pos, i - start); pos += i - start; logBuf(); start = i + 1; } else if (b[i] == '\n') { if (lastb != '\r') { expandCapacity(i - start); System.arraycopy(b, start, buf, pos, i - start); pos += i - start; logBuf(); } start = i + 1; } lastb = b[i]; } if ((len - start) > 0) { expandCapacity(len - start); System.arraycopy(b, start, buf, pos, len - start); pos += len - start; } }