[ 
https://issues.apache.org/jira/browse/LOG4J2-808?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ralph Goers updated LOG4J2-808:
-------------------------------

    Description: 
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.

  was:
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:

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.");
        }}

log4j2.xml:

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

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.


> 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
>
>
> 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.2#6252)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to