Dear sir,

          below part is my complete configuration... includes xml
configuration and java code part
          i logging every level in separate log file.....

<configuration>

        <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
                <ImmediateFlush>true</ImmediateFlush> 
        <layout class="ch.qos.logback.classic.PatternLayout">
                <Pattern>%-4relative [%thread] %-5level %logger{35} - %msg
%n</Pattern> 
        </layout>
        </appender>

        <appender name="FILEDEBUG"
class="ch.qos.logback.core.rolling.RollingFileAppender"> 
                <file>Debug/myDebug.log</file>
                
                <rollingPolicy 
class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">  
                        <FileNamePattern>myDebug.%d.zip</FileNamePattern>  
                        <!-- keep 60 days worth of history -->  
                        <MaxHistory>60</MaxHistory>  
                </rollingPolicy>
                 
                <filter class="ch.qos.logback.classic.filter.LevelFilter">
                <level>DEBUG</level>
                <onMatch>ACCEPT</onMatch>
                <onMismatch>DENY</onMismatch>
        </filter> 
        
                <layout class="ch.qos.logback.classic.PatternLayout">
                        <Pattern>%date %level [%thread] %logger{10} 
[%file:%line]
%msg%n</Pattern>
                </layout>
        </appender>
        
        <appender name="FILEINFO"
class="ch.qos.logback.core.rolling.RollingFileAppender"> 
                <file>Information/myInfo.log</file>
                
                <rollingPolicy 
class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">  
                        <FileNamePattern>myInfo.%d.log</FileNamePattern>  
                        <!-- keep 60 days worth of history -->  
                        <MaxHistory>60</MaxHistory>  
                </rollingPolicy>
                 
                <filter class="ch.qos.logback.classic.filter.LevelFilter">
                <level>INFO</level>
                <onMatch>ACCEPT</onMatch>
                <onMismatch>DENY</onMismatch>
        </filter> 
        
                <layout class="ch.qos.logback.classic.PatternLayout">
                        <Pattern>%date %level [%thread] %logger{10} 
[%file:%line]
%msg%n</Pattern>
                </layout>
        </appender>
        
        <appender name="FILEWARN"
class="ch.qos.logback.core.rolling.RollingFileAppender"> 
                <file>Warning/myWarn.log</file>
                
                <rollingPolicy 
class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">  
                        <FileNamePattern>myWarn.%d.log</FileNamePattern>  
                        <!-- keep 60 days worth of history -->  
                        <MaxHistory>60</MaxHistory>  
                </rollingPolicy>
                 
                <filter class="ch.qos.logback.classic.filter.LevelFilter">
                <level>WARN</level>
                <onMatch>ACCEPT</onMatch>
                <onMismatch>DENY</onMismatch>
        </filter> 
        
                <layout class="ch.qos.logback.classic.PatternLayout">
                        <Pattern>%date %level [%thread] %logger{10} 
[%file:%line]
%msg%n</Pattern>
                </layout>
        </appender>
        
        <appender name="FILERROR"
class="ch.qos.logback.core.rolling.RollingFileAppender"> 
                <file>Error/myError.log</file>
                
                <rollingPolicy 
class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">  
                        <FileNamePattern>myError.%d.zip</FileNamePattern>  
                        <!-- keep 60 days worth of history -->  
                        <MaxHistory>60</MaxHistory>  
                </rollingPolicy>
                 
                <filter class="ch.qos.logback.classic.filter.LevelFilter">
                <level>ERROR</level>
                <onMatch>ACCEPT</onMatch>
                <onMismatch>DENY</onMismatch>
        </filter> 
        
                <layout class="ch.qos.logback.classic.PatternLayout">
                        <Pattern>%date %level [%thread] %logger{10} 
[%file:%line]
%msg%n</Pattern>
                </layout>
        </appender>
 
        <root level="debug">
        <appender-ref ref="CONSOLE" />
                <appender-ref ref="FILEDEBUG" /> 
                <appender-ref ref="FILEINFO" />
                <appender-ref ref="FILEWARN" />
                <appender-ref ref="FILERROR" />  
        </root>
        
</configuration>


==================================================================================
            COMPLETE JAVA CODE 
==================================================================================

import java.util.Random;
import java.util.Scanner;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import ch.qos.logback.classic.LoggerContext;
import ch.qos.logback.classic.joran.JoranConfigurator;
import ch.qos.logback.core.util.StatusPrinter;

public class LogBackTester implements Runnable
{
        /** Monitor Thread Status */
        private volatile boolean threadStatus = false;
        
        /** Logger */
        final static Logger logger = 
LoggerFactory.getLogger(LogBackTester.class);
        
        public LogBackTester()
        {
                try {
                        // LogBack Configuration
                        LoggerContext loggerContext = (LoggerContext)
LoggerFactory.getILoggerFactory();
                        JoranConfigurator config = new JoranConfigurator();
                        config.setContext(loggerContext);
                        loggerContext.reset();
                        config.doConfigure(".\\src\\logback.xml");
                        
StatusPrinter.printInCaseOfErrorsOrWarnings(loggerContext);
                } catch (Exception e) {
                        e.printStackTrace();
                }
        }

        public void run()
        {
                int minValue = 500;
                int maxValue = 1000;
                Random random = new Random();

                while(!threadStatus)
                {
                        int randomValue = random.nextInt(maxValue - minValue + 
1) + minValue;
                        // Write All logs here
                        System.err.println("Random Value : " + randomValue);
                        
                        logger.trace("Trace {} " + randomValue);
                        logger.debug("Debug {} " + randomValue);
                        logger.info("Information {} " + randomValue);
                        logger.warn("Warning {} " + randomValue);
                        logger.error("Error {} " + randomValue);
                        
                        try     {
                                Thread.sleep(randomValue);
                        } catch (InterruptedException e) {
                                e.printStackTrace();
                        }
                }
        }

        private void logBackThreadKiller()
        {
                Scanner scan = new Scanner(System.in);
                String str = scan.next();
                while(scan.hasNext()) {
                        str = scan.next();
                        if(true == str.equalsIgnoreCase("Y")) {
                                threadStatus = true;
                                break;
                        }
                }
                scan.close();
        }

        public static void main(String[] args)
        {
                LogBackTester tester = new LogBackTester();
                Thread thread = new Thread(tester, "LogBackTester");
                thread.start();

                // Thread Killer
                tester.logBackThreadKiller();
        }
}


Thank you,
boss134
-- 
View this message in context: 
http://www.nabble.com/Using-Thread-to-monitored-TimeBasedRollingPolicy...%21-tp22864185p22864390.html
Sent from the Logback Dev mailing list archive at Nabble.com.

_______________________________________________
logback-dev mailing list
[email protected]
http://qos.ch/mailman/listinfo/logback-dev

Reply via email to