svn commit: r2278 - in logback-demo/trunk: . src/etc src/main/java/ch/qos/logback/demo src/main/java/ch/qos/logback/demo/login src/main/resources src/main/resources/parts src/main/webapp

Author: ceki Date: Thu Jun 11 14:22:36 2009 New Revision: 2278 Added: logback-demo/trunk/src/main/resources/parts/sifting.xml Modified: logback-demo/trunk/scenario.txt logback-demo/trunk/src/etc/logback-access.xml logback-demo/trunk/src/main/java/ch/qos/logback/demo/Constants.java logback-demo/trunk/src/main/java/ch/qos/logback/demo/ViewLastLog.java logback-demo/trunk/src/main/java/ch/qos/logback/demo/login/LoginAction.java logback-demo/trunk/src/main/java/ch/qos/logback/demo/login/LogoutAction.java logback-demo/trunk/src/main/resources/logback.xml logback-demo/trunk/src/main/webapp/viewStatii.jsp Log: - fixed display problem in Status servlet (via changes in viewStatii.jsp - other improvements Modified: logback-demo/trunk/scenario.txt ============================================================================== --- logback-demo/trunk/scenario.txt (original) +++ logback-demo/trunk/scenario.txt Thu Jun 11 14:22:36 2009 @@ -1,6 +1,9 @@ Basic ===== -Start with a demo of basic logging using a ConsoleAppender and RollingFileAppender. + +Start with a demo of basic logging using a ConsoleAppender and +RollingFileAppender. + Contents: src/main/resources/logback-basic.xml Cyclic @@ -22,15 +25,22 @@ Importance of parameterized form ================================ -Log off (as sebastien). Turn all logging off. Results should should -that it takes about 1 microsecs to perform the "str"+i+".." computation, -whereas the "str {} ...", i form is about 30 times faster. +Log off (as sebastien). Turn all logging off. Results should should +that it takes about 1 microsecs to perform the "str"+i+".." +computation, whereas the "str {} ...", i form is about 30 times +faster. Marker example ============== Disable logging for all TRACE. Contents: src/main/resources/trace.xml +SiftingAppender example +======================= + +separate logging based on user. +Contents: src/main/resources/sifting.xml + Access logs ============ on the console Modified: logback-demo/trunk/src/etc/logback-access.xml ============================================================================== --- logback-demo/trunk/src/etc/logback-access.xml (original) +++ logback-demo/trunk/src/etc/logback-access.xml Thu Jun 11 14:22:36 2009 @@ -50,7 +50,7 @@ --> - <!-- Part JMX + <!-- Part JMX --> <filter class="ch.qos.logback.access.filter.CountingFilter"> <name>countingFilter</name> </filter> Modified: logback-demo/trunk/src/main/java/ch/qos/logback/demo/Constants.java ============================================================================== --- logback-demo/trunk/src/main/java/ch/qos/logback/demo/Constants.java (original) +++ logback-demo/trunk/src/main/java/ch/qos/logback/demo/Constants.java Thu Jun 11 14:22:36 2009 @@ -3,7 +3,7 @@ public class Constants { public static final String MGMNT_DOMAIN = "qos"; - public static final String USER = "username"; + public static final String USERID = "userid"; public static final String GUESSED_NUMBER = "guessed_number"; public static final Integer WINNING_NUMBER = new Integer(99); Modified: logback-demo/trunk/src/main/java/ch/qos/logback/demo/ViewLastLog.java ============================================================================== --- logback-demo/trunk/src/main/java/ch/qos/logback/demo/ViewLastLog.java (original) +++ logback-demo/trunk/src/main/java/ch/qos/logback/demo/ViewLastLog.java Thu Jun 11 14:22:36 2009 @@ -29,7 +29,7 @@ CyclicBufferAppender cyclicBufferAppender; HTMLLayout layout; - static String PATTERN = "%d%thread%level%logger{25}%mdc{" + Constants.USER + static String PATTERN = "%d%thread%level%logger{25}%mdc{" + Constants.USERID + "}%msg"; @Override Modified: logback-demo/trunk/src/main/java/ch/qos/logback/demo/login/LoginAction.java ============================================================================== --- logback-demo/trunk/src/main/java/ch/qos/logback/demo/login/LoginAction.java (original) +++ logback-demo/trunk/src/main/java/ch/qos/logback/demo/login/LoginAction.java Thu Jun 11 14:22:36 2009 @@ -26,9 +26,9 @@ String username = form.getUsername(); if (username != null) { - MDC.put(Constants.USER, username); + MDC.put(Constants.USERID, username); logger.info("Login: " + username + " just logged in."); - request.getSession().setAttribute(Constants.USER, username); + request.getSession().setAttribute(Constants.USERID, username); request.setAttribute("a", username); } } Modified: logback-demo/trunk/src/main/java/ch/qos/logback/demo/login/LogoutAction.java ============================================================================== --- logback-demo/trunk/src/main/java/ch/qos/logback/demo/login/LogoutAction.java (original) +++ logback-demo/trunk/src/main/java/ch/qos/logback/demo/login/LogoutAction.java Thu Jun 11 14:22:36 2009 @@ -21,13 +21,13 @@ ActionForm actionForm, HttpServletRequest request, HttpServletResponse response) throws Exception { - String username = (String)request.getSession().getAttribute(Constants.USER); + String username = (String)request.getSession().getAttribute(Constants.USERID); - MDC.remove(Constants.USER); + MDC.remove(Constants.USERID); logger.info("User: " + username + " just logged out."); - request.setAttribute(Constants.USER, username); - request.getSession().removeAttribute(Constants.USER); + request.setAttribute(Constants.USERID, username); + request.getSession().removeAttribute(Constants.USERID); return actionMapping.findForward("next"); } Modified: logback-demo/trunk/src/main/resources/logback.xml ============================================================================== --- logback-demo/trunk/src/main/resources/logback.xml (original) +++ logback-demo/trunk/src/main/resources/logback.xml Thu Jun 11 14:22:36 2009 @@ -1,83 +1,102 @@ <?xml version="1.0" encoding="UTF-8" ?> <configuration> - - <appender name="STDOUT" - class="ch.qos.logback.core.ConsoleAppender"> - <layout class="ch.qos.logback.classic.PatternLayout"> - <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{32} - %msg%n</pattern> - </layout> - </appender> - - <appender name="FILE" - class="ch.qos.logback.core.rolling.RollingFileAppender"> - <File>logFile.log</File> - <rollingPolicy - class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> - <FileNamePattern>logFile.%d{yyyy-MM-dd_HH-mm}.log.zip</FileNamePattern> + + <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> + <layout> + <pattern> + %d{HH:mm:ss.SSS} [%thread] %-5level %logger{32} - %msg%n + </pattern> + </layout> + </appender> + + <appender name="FILE" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <File>logFile.log</File> + <rollingPolicy + class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <FileNamePattern> + logFile.%d{yyyy-MM-dd_HH-mm}.log.zip + </FileNamePattern> <maxHistory>5</maxHistory> - </rollingPolicy> + </rollingPolicy> + + <layout> + <Pattern> + %-26(%d{HH:mm:ss,SSS} [%thread]) %-5level %logger{32} - %msg%n + </Pattern> + </layout> + </appender> - <layout class="ch.qos.logback.classic.PatternLayout"> - <Pattern>%-26(%d{HH:mm:ss,SSS} [%thread]) %-5level %logger{32} - %msg%n - </Pattern> - </layout> - </appender> - - <!-- Basic Cyclic buffer - <appender name="CYCLIC" - class="ch.qos.logback.core.read.CyclicBufferAppender"> - <MaxSize>512</MaxSize> - </appender> + <!-- Basic Cyclic buffer + <appender name="CYCLIC" + class="ch.qos.logback.core.read.CyclicBufferAppender"> + <MaxSize>512</MaxSize> + </appender> --> - <!-- Cyclic buffer with Evaluator --> - <appender name="CYCLIC" - class="ch.qos.logback.core.read.CyclicBufferAppender"> - <filter class="ch.qos.logback.core.filter.EvaluatorFilter"> - <evaluator name="loggingTaskEval"> - <expression> - logger.getName().contains("LoggingTask") && - message.contains("Howdydy-diddly-ho") && - (timeStamp - event.getStartTime()) >= 20000 - </expression> - </evaluator> - <OnMatch>DENY</OnMatch> - </filter> - <MaxSize>512</MaxSize> + <!-- Cyclic buffer with Evaluator --> + <appender name="CYCLIC" + class="ch.qos.logback.core.read.CyclicBufferAppender"> + <filter class="ch.qos.logback.core.filter.EvaluatorFilter"> + <evaluator name="loggingTaskEval"> + <expression> + logger.getName().contains("LoggingTask") && + message.contains("Howdydy-diddly-ho") && (timeStamp - + event.getStartTime()) >= 20000 + </expression> + </evaluator> + <OnMatch>DENY</OnMatch> + </filter> + <MaxSize>512</MaxSize> + </appender> + + <appender name="SIFT" + class="ch.qos.logback.classic.sift.SiftingAppender"> + <discriminator> + <Key>userid</Key> + <DefaultValue>unknown</DefaultValue> + </discriminator> + <sift> + <appender name="FILE-${userid}" + class="ch.qos.logback.core.FileAppender"> + <File>${userid}.log</File> + <Append>false</Append> + <layout> + <Pattern> + %d [%thread] %55(%5level %10mdc %logger{35}) - %msg%n + </Pattern> + </layout> + </appender> + </sift> </appender> - <!-- TurboFilter: by MDC value --> - <turboFilter class="ch.qos.logback.classic.turbo.MDCFilter"> - <MDCKey>username</MDCKey> - <Value>ceki</Value> - <OnMatch>ACCEPT</OnMatch> - </turboFilter> - - - <!-- TurboFilter: by Marker --> - <!-- - <turboFilter class="ch.qos.logback.classic.turbo.MarkerFilter"> - <Name>HOWDY_FILTER</Name> - <Marker>HOWDY</Marker> - <OnMatch>DENY</OnMatch> - </turboFilter> - --> - - - <!-- JMX Configurator --> - <jmxConfigurator /> - <root level="${lb_level:-ERROR}" > - <appender-ref ref="STDOUT" /> - <appender-ref ref="FILE" /> + <!-- TurboFilter: by MDC value + <turboFilter class="ch.qos.logback.classic.turbo.MDCFilter"> + <MDCKey>username</MDCKey> + <Value>sebastien</Value> + <OnMatch>ACCEPT</OnMatch> + </turboFilter> + --> - <!-- - Part I: Basic Cyclic buffer --> - <appender-ref ref="CYCLIC" /> + <!-- TurboFilter: by Marker + <turboFilter class="ch.qos.logback.classic.turbo.MarkerFilter"> + <Name>HOWDY_FILTER</Name> + <Marker>HOWDY</Marker> + <OnMatch>DENY</OnMatch> + </turboFilter> + --> + + <!-- JMX Configurator --> + <jmxConfigurator /> - </root> + <root level="${lb_level:-ERROR}"> + <appender-ref ref="STDOUT" /> + <appender-ref ref="SIFT" /> + <appender-ref ref="CYCLIC" /> + </root> </configuration> Added: logback-demo/trunk/src/main/resources/parts/sifting.xml ============================================================================== --- (empty file) +++ logback-demo/trunk/src/main/resources/parts/sifting.xml Thu Jun 11 14:22:36 2009 @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="UTF-8" ?> + + <appender name="SIFT" class="ch.qos.logback.classic.sift.SiftingAppender"> + <discriminator> + <Key>userid</Key> + <DefaultValue>unknown</DefaultValue> + </discriminator> + <sift> + <appender name="FILE-${userid}" class="ch.qos.logback.core.FileAppender"> + <File>${userid}.log</File> + <Append>false</Append> + <layout> + <Pattern>%d [%thread] %level %mdc %logger{35} - %msg%n</Pattern> + </layout> + </appender> + </sift> + </appender> + Modified: logback-demo/trunk/src/main/webapp/viewStatii.jsp ============================================================================== --- logback-demo/trunk/src/main/webapp/viewStatii.jsp (original) +++ logback-demo/trunk/src/main/webapp/viewStatii.jsp Thu Jun 11 14:22:36 2009 @@ -43,7 +43,7 @@ <logic:notEmpty name="<%=Constants.STATUS %>"> <pre> -<bean:write name="<%=Constants.STATUS %>"/> +<bean:write filter="false" name="<%=Constants.STATUS %>"/> </pre> </logic:notEmpty>
participants (1)
-
noreply.ceki@qos.ch