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]
