logging-log4j-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ralph Goers (JIRA)" <j...@apache.org>
Subject [jira] [Comment Edited] (LOG4J2-808) RegexFilter does not work properly with RollingFileAppenders
Date Tue, 02 Sep 2014 22:25:25 GMT

    [ https://issues.apache.org/jira/browse/LOG4J2-808?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14118841#comment-14118841
] 

Ralph Goers edited comment on LOG4J2-808 at 9/2/14 10:25 PM:
-------------------------------------------------------------

I definitely don't understand what you are trying to achieve.

What makes you think it is overriding onMatch?  As I said, ACCEPT means that the event will
be logged by the Appender.  NEUTRAL means that the result is indeterminate and other filters
should be checked. If no other filter DENYs the event it will be logged.   So by having ACCEPT
& NEUTRAL with no other filters you are saying to log everything.

To be clear - when your regex matches the event is going to be logged due to the ACCEPT. When
the regex does not match the event is going to be logged because nothing told it not to log
it.  Since your example has two appenders that both have the same regex filter and both appenders
are referenced, both appenders are going to log everything.

I guess I just don't understand the way you think it is supposed to work.


was (Author: ralph.goers@dslextreme.com):
I definitely don't understand what you are trying to achieve.

What makes you think it is overriding onMatch?  As I said, ACCEPT means that the event will
be logged by the Appender.  NEUTRAL means that the result is indeterminate and other filters
should be checked. If no other filter DENYs the event it will be logged.   So by having ACCEPT
& NEUTRAL with no other filters you are saying to log everything.

I guess I just don't understand the way you think it is supposed to work.

> RegexFilter does not work properly with RollingFileAppenders 
> -------------------------------------------------------------
>
>                 Key: LOG4J2-808
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-808
>             Project: Log4j 2
>          Issue Type: Bug
>          Components: Filters
>    Affects Versions: 2.0-rc1
>            Reporter: Pranav Pratap
>              Labels: newbie
>             Fix For: 2.0-rc1
>
>         Attachments: HelloWorld.java, MainApp.java, log4j2.xml
>
>
> I am trying to use Regexfilter in RollingFileAppender. For 1st matching instance it retreived
the logger, but after that I different patttern but nothing is logged in the file. Here is
what I am using:
> {code}
> Main Class:
> public class MainApp {
>     /** 
>      * @param args
>      */
>      public static void main(String[] args) {
>          // TODO Auto-generated method stub
> 	final Logger logger = LogManager.getLogger(MainApp.class.getName());
> 	
> 	ApplicationContext context = new ClassPathXmlApplicationContext("Beans.xml");
> 		
>         HelloWorld obj = (HelloWorld) context.getBean("helloWorld");
>         logger.trace("NPF:Trace:Entering Log4j2 Example.");
>         logger.debug("NTL:debug Entering Log4j2 Example.");
>         obj.getMessage();	
>         Company comp = new Company();
>         comp.setCompName("ANC");
>         comp.setEstablish(1889);
>      
>         CompanyBusiness compBus =      (CompanyBusiness)context.getBean("compBus");
>         compBus.finaceBusiness(comp.getCompName(), comp.getEstablish());
>         logger.trace("NTL: Trace: Exiting Log4j2 Example.");
>     }
> }
> {code}
> log4j2.xml:
> {code}
> <?xml version="1.0" encoding="UTF-8" ?>
> <Configuration>
>  	<Appenders>
>              <Console name="STDOUT" target="SYSTEM_OUT">
>                  <PatternLayout pattern="%d{yyyy-MM-dd [%t] HH:mm:ss} %-5p %c{1}:%L
- %m%X%n" />
> 	    </Console>
> 	    <RollingFile name="RollingFile" fileName="C:\logTest\runtime\tla\els3.log"  append="true"
>     	                        filePattern="C:\logTest\runtime\tla\els3-%d{yyyy-MM-dd}-%i.log"
>
>                 <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36}
- %m%X%n" />
>                 <RegexFilter regex=".*business*." onMatch="ACCEPT" onMismatch="DENY"/>

>                 <Policies>
>                     <SizeBasedTriggeringPolicy size="20 MB" />
>                 </Policies>     	
>             </RollingFile>		
> 	</Appenders>
> 	<Loggers>
> 		<Logger name="com.anc" level="trace"/>	
> 		<Root level="trace"> 
>     		    <AppenderRef ref="STDOUT" /> 
>     		    <AppenderRef ref="RollingFile"/> 
> 		</Root>	
> 	</Loggers>
> </Configuration>
> {code}
> When I ran for the first time, in my logfile I got logs having only "business" related
line. Latter I changed the patter from .*business*. to "business", logging did not happen
in file nor on the console. Also my application terminated without any kind of logging.
> Then I tried to revert back the pattern to .*business*., thereafter no logging happened
on the log file, but on the console all the log trace is printed. When I comment out the Regexfilter
after trying for long time, my logs was printed in the log file.
> I am not sure if this is a bug of Regexfilter works only for one time. Also if we do
not pass any patter matching characters, the application stops without any log printing either
on console or file.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-dev-unsubscribe@logging.apache.org
For additional commands, e-mail: log4j-dev-help@logging.apache.org


Mime
View raw message