Skip to content
  1. Dec 30, 2008
  2. Dec 29, 2008
  3. Dec 28, 2008
    • Ceki Gulcu's avatar
      · b6449bab
      Ceki Gulcu authored
      Documentation enhancements. Closing LBCLASSIC-30
      b6449bab
    • Ceki Gulcu's avatar
      · 4f5878db
      Ceki Gulcu authored
      ContextInitializer now prints the url it uses for default configuration.
      This was requested in LBCLASSIC-55.
      4f5878db
    • Ceki Gulcu's avatar
      - update news.html file · 080c8d0c
      Ceki Gulcu authored
      080c8d0c
    • Ceki Gulcu's avatar
      · 17faeb66
      Ceki Gulcu authored
      - Fix LBCORE-74
        
        HTMLLayoutBase now takes into custom conversion words.
        
      - Moved StringListAppender to c.q.l.classic.testUtil package
      17faeb66
  4. Dec 27, 2008
    • Ceki Gulcu's avatar
      · a2a29835
      Ceki Gulcu authored
      - cleaned up config files so that "level" is an XML attribute and not
        an XML element
      
      - updated Gmail related examples
      
      - LBCLASSIC-100
      
        Evaluators are now wired into an appender automatically (implicit
        rules) without the help of EvaluatorAction. EvaluatorAction is now
        only needed for global evaluator elements.
      
        It follows that name attribute is necessary only for global
        evaluators. Embedded evaluators no longer need a name.
      
        EvaluatorAction has been modified to accept evaluators of any type
        and not just JaninoEvaluators.
      a2a29835
  5. Dec 26, 2008
  6. Dec 24, 2008
  7. Dec 23, 2008
  8. Dec 22, 2008
  9. Dec 19, 2008
  10. Dec 18, 2008
  11. Dec 17, 2008
  12. Dec 12, 2008
    • Ceki Gulcu's avatar
      · b8af298c
      Ceki Gulcu authored
      - Initial commit of HoardingAppender
      
      HoardingAppender contains other appenders which it can build
      dynamically depending on MDC values. The built appender is specified
      as part of a configuration file. Here is an example.
      
      <configuration debug="true">
        <appender name="HOARD"  class="ch.qos.logback.classic.hoard.HoardingAppender">
          <mdcKey>userid</mdcKey>
          <hoard>
            <!-- you can put any appender here -->
            <appender name="file-${userid}" class="ch.qos.logback.core.FileAppender">
              <File>${userid}.log</File>
              <Append>true</Append>
              <layout class="ch.qos.logback.classic.PatternLayout">
                <Pattern>%d [%thread] %level %logger{35} - %msg%n</Pattern>
              </layout>
            </appender>
          </hoard>
        </appender>
        <root level="DEBUG">
          <appender-ref ref="HOARD" />
        </root>
      </configuration>
      
      A new file appender will be built each according to the MDC value
      associated with the key "userid" when a logging event occurs. The
      above configuration file will ventilate logging into log files named
      after the userid. 
      
      - Added PropertyContainer interface
      - Context interface now extends PropertyContainer
      - InterpretationContext implements PropertyContainer
        It now has a field called propertiesMap which has precedence
        over values placed in the context
      - InterpretationContext.getSubstitutionProperty was renamed as
        getProperty
      - It is now possible to initialize a joran Interpreter with an initial
        (not empty) pattern
      
      This is still very much ongoing work.
        
      b8af298c
  13. Dec 10, 2008
    • Ceki Gulcu's avatar
      · 5e9af127
      Ceki Gulcu authored
      Fix LBCORE-78. 
      
      AsynchronousCompressor shuts down the executor it created, thus avoiding a memory leak.
      5e9af127
  14. Dec 05, 2008
    • Ceki Gulcu's avatar
      - in ContextJNDISelector renamed contextMap as synchronizedContextMap · 42164443
      Ceki Gulcu authored
      - cosmetic changes in Context
      42164443
    • Ceki Gulcu's avatar
      · 5314fb0f
      Ceki Gulcu authored
      Removed 'synchronized' keyword from the incSize() and size() methods. 
      Synchronization was causing a deadlock described in LBCLASSIC-81
      These two methods are used internally by logback for testing purposes.
      5314fb0f
    • Ceki Gulcu's avatar
      · 6c69affd
      Ceki Gulcu authored
      The getEffectiveLevel() method needs to be synchronized to protect
      against concurrent modification when iterating over
      childrenList.iterator().
      6c69affd