Thanks James, it is working now. But some times i could see empty space (characters) getting appended in respective log files.
I have modified some thing like this: <logger name="com.mypack" additivity="false"> <level value="debug"/> <appender-ref ref="P"/> <appender-ref ref="PA"/> </logger> <root> <priority value ="debug"/> <appender-ref ref="P"/> <appender-ref ref="PA"/> </root> What could be the reason? Regards, Praveen On 1/5/06, James Stauffer <[EMAIL PROTECTED]> wrote: > > Change your config to include the logger/category in the output. When > you find the logger of the bad messages, change your config to not log > them (or only log warn and above). > > On 1/5/06, Praveen Kumar Hasthalapuram <[EMAIL PROTECTED]> wrote: > > Hi All, > > > > I have a Filter class (StringMatchFilter.java) which will filter for > > specific message. > > By default i will log all the messages to one log file (file1.log) and > > if particular string matches (based on defined filter) it should logto > > file1.log and > > another log file (file1.log) too. > > > > I have configured in log4j.xml for it as shown below. > > > > Filtering is working , but whenever i restart tomcat some junk data > > related to Tomcat server is also getting logged into this file and > > some times empty spaces are getting occupied in the file1.log and > > file2.log. > > > > Sample junk data: [2006-01-05 20:54:56] [DEBUG] ignorableWhitespace( > > ) > > [2006-01-05 20:54:56] [DEBUG] startElement(,,rtexprvalue) > > [2006-01-05 20:54:56] [DEBUG] Pushing body text '' > > [2006-01-05 20:54:56] [DEBUG] New > match='taglib/tag/attribute/rtexprvalue' > > [2006-01-05 20:54:56] [DEBUG] No rules found matching > > 'taglib/tag/attribute/rtexprvalue'. > > [2006-01-05 20:54:56] [DEBUG] characters(true) > > [2006-01-05 20:54:56] [DEBUG] endElement(,,rtexprvalue) > > [2006-01-05 20:54:56] [DEBUG] match='taglib/tag/attribute/rtexprvalue' > > [2006-01-05 20:54:56] [DEBUG] bodyText='true' > > [2006-01-05 20:54:56] [DEBUG] No rules found matching > > 'taglib/tag/attribute/rtexprvalue'. > > [2006-01-05 20:54:56] [DEBUG] Popping body text '' > > [2006-01-05 20:54:56] [DEBUG] ignorableWhitespace( > > ) > > [2006-01-05 20:54:56] [DEBUG] endElement(,,attribute) > > [2006-01-05 20:54:56] [DEBUG] match='taglib/tag/attribute' > > [2006-01-05 20:54:56] [DEBUG] bodyText='' > > [2006-01-05 20:54:56] [DEBUG] No rules found matching > 'taglib/tag/attribute' > > > > > > Because of it file size is grwoing like anything. Even not backing up > files. > > > > What could be the problem? is it in configuration or in filter class > file? > > > > Could anyone suggest me? > > > > Here iam listing sample xml file and java file: > > > > log4j.xml > > > > <?xml version="1.0" encoding="UTF-8" ?> > > <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> > > > > <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> > > > > > > <!-- MyPackage Rolling Log --> > > <appender name="P" class="org.apache.log4j.RollingFileAppender"> > > <param name="Threshold" value="DEBUG"/> > > <param name="File" value="file1.log"/> > > <param name="Append" value="true"/> > > <param name="MaxFileSize" value="10MB"/> > > <param name="maxBackupIndex" value="2"/> > > <layout class="org.apache.log4j.PatternLayout"> > > <param name="ConversionPattern" value="[%d{yyyy-MM-dd > > HH:mm:ss}] [%p] %m%n"/> > > </layout> > > </appender> > > > > <!-- MyPackage Rolling Log --> > > <appender name="PA" class="org.apache.log4j.RollingFileAppender"> > > <param name="File" value="file2.log"/> > > <param name="Append" value="true"/> > > <param name="MaxFileSize" value="10MB"/> > > <param name="maxBackupIndex" value="10"/> > > <layout class="org.apache.log4j.PatternLayout"> > > <param name="ConversionPattern" value="[%d{yyyy-MM-dd > > HH:mm:ss}] [%p] %m%n"/> > > </layout> > > <filter class=" > com.cisco.nettools.logger.filters.StringMatchFilter"> > > <param name="stringToMatch" value="SNMP"/> > > <param name="matchReturnValue" value="accept"/> > > <param name="noMatchReturnValue" value="deny"/> > > </filter> > > </appender> > > > > > > <!-- MyPackage Logger (three packages) --> > > <logger name="com.mypack1" additivity="false"> > > <appender-ref ref="P"/> > > <appender-ref ref="PA"/> > > </logger> > > > > <logger name="com.mypack2" additivity="false"> > > <appender-ref ref="P"/> > > <appender-ref ref="PA"/> > > </logger> > > > > <logger name="com.mypack3" additivity="false"> > > <appender-ref ref="P"/> > > <appender-ref ref="PA"/> > > </logger> > > > > <!-- Set root logger level to DEBUG and its only appender to P, PA --> > > > > <root> > > <priority value ="debug"/> > > <appender-ref ref="P"/> > > <appender-ref ref="PA"/> > > </root> > > > > </log4j:configuration> > > > > > > > > StringMatchFilter.java > > ---------------------- > > > > package com.mypackage.logger.filters; > > > > import org.apache.log4j.spi.Filter; > > import org.apache.log4j.spi.LoggingEvent; > > > > > > public class StringMatchFilter extends Filter { > > > > boolean acceptOnMatch = true; > > String stringToMatch; > > public int matchReturnValue = Filter.ACCEPT; > > public int noMatchReturnValue = Filter.DENY; > > public int cantMatchReturnValue = Filter.NEUTRAL; > > > > protected int calcFilterReturnValue(String value) { > > if ("accept".equalsIgnoreCase(value)) > > return Filter.ACCEPT; > > else if ("deny".equalsIgnoreCase(value)) > > return Filter.DENY; > > else > > return Filter.NEUTRAL; > > } > > > > public void setMatchReturnValue(String value) { > > matchReturnValue = calcFilterReturnValue(value); > > } > > > > > > public void setNoMatchReturnValue(String value) { > > noMatchReturnValue = calcFilterReturnValue(value); > > } > > > > > > public void setCantReturnValue(String value) { > > cantMatchReturnValue = calcFilterReturnValue(value); > > } > > > > > > public void setStringToMatch(String s) { > > stringToMatch = s; > > } > > > > public String getStringToMatch() { > > return stringToMatch; > > } > > > > public void setAcceptOnMatch(boolean acceptOnMatch) { > > this.acceptOnMatch = acceptOnMatch; > > } > > > > public boolean getAcceptOnMatch() { > > return acceptOnMatch; > > } > > > > > > public int decide(LoggingEvent event) { > > String msg = event.getRenderedMessage(); > > if(msg == null || stringToMatch == null){ > > return cantMatchReturnValue; > > } > > > > > > if(msg.indexOf(stringToMatch) >= 0){ > > System.out.println("String Matched"); > > return matchReturnValue; > > }else{ > > System.out.println("String not matched"); > > return noMatchReturnValue; > > } > > } > > } > > > > > > Thanks In Advance, > > Praveen > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > -- > James Stauffer > Are you good? Take the test at http://www.livingwaters.com/good/ > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > >