CVS: jfor/src/org/jfor/jfor/converter Converter.java,1.13,1.14 ConverterLogChannel.java,1.3,1.4 TextBuilder.java,1.5,1.6
Bertrand Delacretaz <[email protected]> Tue, 24 Sep 2002 03:12:13 -0700
| Newsgroups | gmane.text.xml.jfor.cvs |
|---|---|
| Message-ID | <[email protected]> |
Update of /cvsroot/jfor/jfor/src/org/jfor/jfor/converter
In directory usw-pr-cvs1:/tmp/cvs-serv14993/src/org/jfor/jfor/converter
Modified Files:
Converter.java ConverterLogChannel.java TextBuilder.java
Log Message:
V0.7.2dev-e - uses Apache logkit for more precise and configurable logging
Index: Converter.java
===================================================================
RCS file: /cvsroot/jfor/jfor/src/org/jfor/jfor/converter/Converter.java,v
retrieving revision 1.13
retrieving revision 1.14
diff -C2 -d -r1.13 -r1.14
*** Converter.java 17 Sep 2002 12:21:23 -0000 1.13
--- Converter.java 24 Sep 2002 10:12:11 -0000 1.14
***************
*** 8,11 ****
--- 8,13 ----
import org.jfor.jfor.main.JForVersionInfo;
import org.jfor.jfor.tools.DomToSaxAdapter;
+ import org.apache.log.Hierarchy;
+ import org.apache.log.Logger;
/*-----------------------------------------------------------------------------
***************
*** 72,75 ****
--- 74,80 ----
// $Id$
// $Log$
+ // Revision 1.14 2002/09/24 10:12:11 bdelacretaz
+ // V0.7.2dev-e - uses Apache logkit for more precise and configurable logging
+ //
// Revision 1.13 2002/09/17 12:21:23 bdelacretaz
// V0.7.2dev-c - extraneous stdout/stderr output removed
***************
*** 142,147 ****
extends DefaultHandler {
- private boolean m_debugSaxEvents=false;
-
/** used to process text nodes */
private StringBuffer m_characterBuffer=new StringBuffer();
--- 147,150 ----
***************
*** 158,164 ****
private final IConverterOption m_options;
! /** log channel */
private final ConverterLogChannel m_log;
/** List of IBuilders in priority order */
private final List m_builders = new LinkedList();
--- 161,173 ----
private final IConverterOption m_options;
! /** "old" jfor log channel */
private final ConverterLogChannel m_log;
+
+ /** logkit channel used to debug which Builders are used to process the input */
+ private static final Logger m_builderLog = Hierarchy.getDefaultHierarchy().getLoggerFor("jfor").getChildLogger("converter").getChildLogger("builder").getChildLogger("actions");
+ /** logkit channel used to debug SAX events */
+ private static final Logger m_saxLog = Hierarchy.getDefaultHierarchy().getLoggerFor("jfor").getChildLogger("converter").getChildLogger("sax").getChildLogger("events");
+
/** List of IBuilders in priority order */
private final List m_builders = new LinkedList();
***************
*** 270,296 ****
}
!
! /** print sax events */
! private void debugSaxEvents(String localName,String rawName, Attributes attrs,boolean start) {
! if (rawName==null) rawName="null";
! if (attrs!=null) {
! if (start) {
! for (int i = 0; i<attrs.getLength(); i++) {
! System.out.println (" "+attrs.getLocalName(i)+"-"+attrs.getValue(i));
! }
}
}
}
-
-
/* Parser calls this for each element in a document */
public void startElement(String namespaceURI,String localName,String rawName, Attributes attrs)
throws SAXException {
maybeProcessCharacters();
- if(m_debugSaxEvents) debugSaxEvents(localName,rawName,attrs,true);
-
-
// find appropriate builder
IBuilder newBuilder = null;
--- 279,312 ----
}
! /** write sax events to m_saxLog if it is enabled */
! private void logSaxEvent(String what,String localName,String rawName, Attributes attrs) {
! if(!m_saxLog.isDebugEnabled()) return;
!
! final StringBuffer sb = new StringBuffer();
! sb.append(what);
! sb.append(": localName:");
! sb.append(localName);
! sb.append(", rawName:");
! sb.append(rawName);
! sb.append(", attributes:{");
! if(attrs!=null) {
! for (int i = 0; i<attrs.getLength(); i++) {
! sb.append(attrs.getLocalName(i));
! sb.append("=");
! sb.append(attrs.getValue(i));
! sb.append(",");
}
}
+ sb.append("}");
+
+ m_saxLog.debug(sb.toString());
}
/* Parser calls this for each element in a document */
public void startElement(String namespaceURI,String localName,String rawName, Attributes attrs)
throws SAXException {
+ if(m_saxLog.isDebugEnabled()) logSaxEvent("startElement",localName,rawName,attrs);
maybeProcessCharacters();
// find appropriate builder
IBuilder newBuilder = null;
***************
*** 314,322 ****
if(newBuilder == null) throw new SAXException("no builder found for element '" + rawName + "'");
m_builder = newBuilder;
m_context.pushBuilder(m_builder);
// let current builder process the element
try {
-
m_builder.preStart(rawName,attrs);
m_builder.start(rawName,attrs);
--- 330,340 ----
if(newBuilder == null) throw new SAXException("no builder found for element '" + rawName + "'");
m_builder = newBuilder;
+ if(m_builderLog.isDebugEnabled()) {
+ m_builderLog.debug("startElement (" + localName + "): using builder " + m_builder);
+ }
m_context.pushBuilder(m_builder);
// let current builder process the element
try {
m_builder.preStart(rawName,attrs);
m_builder.start(rawName,attrs);
***************
*** 329,335 ****
public void endElement(String namespaceURI, String localName,String rawName)
throws SAXException {
- if(m_debugSaxEvents) debugSaxEvents(localName,rawName,null,false);
-
maybeProcessCharacters();
try {
m_builder.end();
--- 347,355 ----
public void endElement(String namespaceURI, String localName,String rawName)
throws SAXException {
maybeProcessCharacters();
+ if(m_saxLog.isDebugEnabled()) logSaxEvent("endElement",localName,rawName,null);
+ if(m_builderLog.isDebugEnabled()) {
+ m_builderLog.debug("endElement (" + localName + "): using builder " + m_builder);
+ }
try {
m_builder.end();
***************
*** 341,348 ****
--- 361,374 ----
// return to previous builder
m_builder = m_context.popBuilderAndGetPreviousOne();
+ if(m_builderLog.isDebugEnabled()) {
+ m_builderLog.debug("endElement: back to builder " + m_builder);
+ }
}
/** Parser calls this to process text nodes */
public void characters(char ch[], int start, int length) {
+ if(m_saxLog.isDebugEnabled()) {
+ m_saxLog.debug("characters:" + toPrintableChars(new String(ch,start,length)));
+ }
m_characterBuffer.append(ch,start,length);
}
***************
*** 352,355 ****
--- 378,384 ----
throws SAXException {
try {
+ if(m_builderLog.isDebugEnabled()) {
+ m_builderLog.debug("processCharacters: using builder " + m_builder + " (chars=" + toPrintableChars(txt) + ")");
+ }
if(m_builder!=null) m_builder.characters(txt);
} catch(IOException ioe) {
***************
*** 366,382 ****
}
- // public void characters(char ch[], int start, int length)
- // throws SAXException {
- // try {
- // final String txt = new String(ch,start,length);
- // if(m_builder!=null) m_builder.characters(txt);
- // } catch(IOException ioe) {
- // throw new SAXException("IOException in IBuilder: " + ioe.toString());
- // }
- // }
-
-
/** Receive notification of the beginning of the document */
public void startDocument() throws SAXException {
maybeProcessCharacters();
}
--- 395,403 ----
}
/** Receive notification of the beginning of the document */
public void startDocument() throws SAXException {
+ if(m_saxLog.isDebugEnabled()) {
+ m_saxLog.debug("startDocument)");
+ }
maybeProcessCharacters();
}
***************
*** 385,389 ****
public void endDocument()
throws SAXException {
!
maybeProcessCharacters();
--- 406,412 ----
public void endDocument()
throws SAXException {
! if(m_saxLog.isDebugEnabled()) {
! m_saxLog.debug("endDocument)");
! }
maybeProcessCharacters();
***************
*** 412,414 ****
--- 435,456 ----
return new ConverterOption (debug, info, warning, error);
}
+
+ /** logging utility */
+ static String toPrintableChars(String input)
+ {
+ final String okChars = " .-:/,;{}[]()+\"'*%&?";
+ final StringBuffer sb = new StringBuffer();
+ for(int i=0; i < input.length(); i++) {
+ final char c = input.charAt(i);
+ if(Character.isLetterOrDigit(c) || okChars.indexOf(c) >= 0) {
+ sb.append(c);
+ } else {
+ sb.append("&#");
+ sb.append((int)c);
+ sb.append(";");
+ }
+ }
+ return sb.toString();
+ }
+
}
Index: ConverterLogChannel.java
===================================================================
RCS file: /cvsroot/jfor/jfor/src/org/jfor/jfor/converter/ConverterLogChannel.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** ConverterLogChannel.java 12 Jul 2002 08:08:31 -0000 1.3
--- ConverterLogChannel.java 24 Sep 2002 10:12:11 -0000 1.4
***************
*** 2,5 ****
--- 2,7 ----
import java.io.*;
+ import org.apache.log.Hierarchy;
+ import org.apache.log.Logger;
/*-----------------------------------------------------------------------------
***************
*** 60,63 ****
--- 62,68 ----
// $Id$
// $Log$
+ // Revision 1.4 2002/09/24 10:12:11 bdelacretaz
+ // V0.7.2dev-e - uses Apache logkit for more precise and configurable logging
+ //
// Revision 1.3 2002/07/12 08:08:31 bdelacretaz
// License changed to jfor Apache-style license
***************
*** 82,147 ****
public class ConverterLogChannel
{
! public static final String DEBUG_IDENT = "jfor.DEBUG:";
! public static final String INFO_IDENT = "jfor.INFO:";
! public static final String WARNING_IDENT = "jfor.WARNING:";
! public static final String ERROR_IDENT = "jfor.ERROR:";
!
! private final Writer mDebugWriter;
! private final Writer mInfoWriter;
! private final Writer mWarningWriter;
! private final Writer mErrorwriter;
! /** build a log channel that logs to given Writer */
public ConverterLogChannel(Writer w)
{
- mDebugWriter = w;
- mInfoWriter = w;
- mWarningWriter = w;
- mErrorwriter = w;
}
public ConverterLogChannel (Writer debugWriter, Writer infoWriter, Writer warningWriter, Writer errorWriter)
{
- mDebugWriter = debugWriter;
- mInfoWriter = infoWriter;
- mWarningWriter = warningWriter;
- mErrorwriter = errorWriter;
- }
-
- private void doLog(String msg,String str, Writer writer)
- {
- if (writer == null)
- return;
-
- try {
- synchronized(writer) {
- writer.write(msg);
- writer.write(str);
- writer.write('\n');
- writer.flush();
- }
- } catch(IOException ioe) {
- // ignore
- }
}
public void logDebug(String str)
{
! doLog(DEBUG_IDENT,str, mDebugWriter);
}
public void logInfo(String str)
{
! doLog(INFO_IDENT,str, mInfoWriter);
}
public void logWarning(String str)
{
! doLog(WARNING_IDENT,str, mWarningWriter);
}
public void logError(String str)
{
! doLog(ERROR_IDENT,str, mErrorwriter);
}
}
--- 87,125 ----
public class ConverterLogChannel
{
! private static final Logger m_logger = Hierarchy.getDefaultHierarchy().getLoggerFor("jfor").getChildLogger("converter").getChildLogger("MainLog");
! static {
! // make sure the logging system is configured
! org.jfor.jfor.main.JForLogConfig.configure();
! }
!
! /** @param w ignored, using log4j configuration */
public ConverterLogChannel(Writer w)
{
}
+ /** all parameters ignored, using log4j configuration */
public ConverterLogChannel (Writer debugWriter, Writer infoWriter, Writer warningWriter, Writer errorWriter)
{
}
public void logDebug(String str)
{
! m_logger.debug(str);
}
public void logInfo(String str)
{
! m_logger.info(str);
}
public void logWarning(String str)
{
! m_logger.warn(str);
}
public void logError(String str)
{
! m_logger.error(str);
}
}
Index: TextBuilder.java
===================================================================
RCS file: /cvsroot/jfor/jfor/src/org/jfor/jfor/converter/TextBuilder.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** TextBuilder.java 12 Jul 2002 08:08:31 -0000 1.5
--- TextBuilder.java 24 Sep 2002 10:12:11 -0000 1.6
***************
*** 62,65 ****
--- 62,68 ----
// $Id$
// $Log$
+ // Revision 1.6 2002/09/24 10:12:11 bdelacretaz
+ // V0.7.2dev-e - uses Apache logkit for more precise and configurable logging
+ //
// Revision 1.5 2002/07/12 08:08:31 bdelacretaz
// License changed to jfor Apache-style license
***************
*** 107,110 ****
--- 110,128 ----
m_attributes = cAttr == null ? null : (RtfAttributes)cAttr.clone();
whitespaceConvert = false;
+ }
+
+ /** debugging info */
+ public String toString()
+ {
+ final StringBuffer sb = new StringBuffer();
+ sb.append(super.toString());
+ if(m_container == null) {
+ sb.append(" (null IRtfTextContainer)");
+ } else {
+ sb.append(" (IRtfTextContainer=");
+ sb.append(m_container.toString());
+ sb.append(")");
+ }
+ return sb.toString();
}
-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf