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]

Reply via email to