User: d_jencks Date: 01/08/18 21:53:27 Added: src/main/org/jboss/logging/log4j CategoryWriter.java Log: CategoryWriter provides a PrintWriter for APIs such as the Connector api that want to use a PrintWriter for logging. It logs to a supplied category, by default at INFO level. Revision Changes Path 1.1 jboss/src/main/org/jboss/logging/log4j/CategoryWriter.java Index: CategoryWriter.java =================================================================== /* * JBoss, the OpenSource J2EE webOS * * Distributable under LGPL license. * See terms of license at gnu.org. */ package org.jboss.logging.log4j; import java.io.IOException; import java.io.PrintWriter; import java.io.Writer; import org.apache.log4j.Category; import org.apache.log4j.Priority; /** * A subclass of PrintWriter that redirects its output to a log4j Category. <p> * * This class is used to have something to give api methods that require a * PrintWriter for logging. JBoss-owned classes of this nature generally ignore * the PrintWriter and do their own log4j logging. * * @author <a href="mailto:[EMAIL PROTECTED]">David Jencks</a> * . * @created August 19, 2001 * @version $$ */ public class CategoryWriter extends PrintWriter { private Category category; private Priority priority; private boolean inWrite; private boolean issuedWarning; /** * Redirect logging to the indicated category using Priority.INFO * * @param category Description of Parameter */ public CategoryWriter( final Category category ) { this( category, Priority.INFO ); } /** * Redirect logging to the indicated category using the given priority. The * ps is simply passed to super but is not used. * * @param category Description of Parameter * @param priority Description of Parameter */ public CategoryWriter( final Category category, final Priority priority ) { super( new InternalCategoryWriter( category, priority ), true ); } /** * @created August 19, 2001 */ static class InternalCategoryWriter extends Writer { private Category category; private Priority priority; private boolean closed; public InternalCategoryWriter( final Category category, final Priority priority ) { lock = category; //synchronize on this category this.category = category; this.priority = priority; } public void write( char[] cbuf, int off, int len ) throws IOException { if ( closed ) { throw new IOException( "Called write on closed Writer" ); } // Remove the end of line chars while ( len > 0 && ( cbuf[len - 1] == '\n' || cbuf[len - 1] == '\r' ) ) { len--; } if ( len > 0 ) { category.log( priority, String.copyValueOf( cbuf, off, len ) ); } } public void flush() throws IOException { if ( closed ) { throw new IOException( "Called flush on closed Writer" ); } } public void close() { closed = true; } } } _______________________________________________ Jboss-development mailing list [EMAIL PROTECTED] http://lists.sourceforge.net/lists/listinfo/jboss-development
