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]
>
>