You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by gr...@apache.org on 2012/06/02 17:36:26 UTC
svn commit: r1345524 [4/17] - in /logging/log4j/branches/log4j12-bz53299: ./
contribs/ contribs/CekiGulcu/ contribs/EirikLygre/ contribs/JamesHouse/
contribs/Jamie Tsao/ contribs/JimMoore/ contribs/KevinSteppe/
contribs/KitchingSimon/ contribs/LeosLite...
Copied: logging/log4j/branches/log4j12-bz53299/core/src/main/java/org/apache/log4j/xml/SAXErrorHandler.java (from r1345516, logging/log4j/branches/log4j12-bz53299/src/main/java/org/apache/log4j/xml/SAXErrorHandler.java)
URL: http://svn.apache.org/viewvc/logging/log4j/branches/log4j12-bz53299/core/src/main/java/org/apache/log4j/xml/SAXErrorHandler.java?p2=logging/log4j/branches/log4j12-bz53299/core/src/main/java/org/apache/log4j/xml/SAXErrorHandler.java&p1=logging/log4j/branches/log4j12-bz53299/src/main/java/org/apache/log4j/xml/SAXErrorHandler.java&r1=1345516&r2=1345524&rev=1345524&view=diff
==============================================================================
(empty)
Propchange: logging/log4j/branches/log4j12-bz53299/core/src/main/java/org/apache/log4j/xml/SAXErrorHandler.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: logging/log4j/branches/log4j12-bz53299/core/src/main/java/org/apache/log4j/xml/SAXErrorHandler.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Copied: logging/log4j/branches/log4j12-bz53299/core/src/main/java/org/apache/log4j/xml/UnrecognizedElementHandler.java (from r1345516, logging/log4j/branches/log4j12-bz53299/src/main/java/org/apache/log4j/xml/UnrecognizedElementHandler.java)
URL: http://svn.apache.org/viewvc/logging/log4j/branches/log4j12-bz53299/core/src/main/java/org/apache/log4j/xml/UnrecognizedElementHandler.java?p2=logging/log4j/branches/log4j12-bz53299/core/src/main/java/org/apache/log4j/xml/UnrecognizedElementHandler.java&p1=logging/log4j/branches/log4j12-bz53299/src/main/java/org/apache/log4j/xml/UnrecognizedElementHandler.java&r1=1345516&r2=1345524&rev=1345524&view=diff
==============================================================================
(empty)
Propchange: logging/log4j/branches/log4j12-bz53299/core/src/main/java/org/apache/log4j/xml/UnrecognizedElementHandler.java
------------------------------------------------------------------------------
svn:eol-style = native
Copied: logging/log4j/branches/log4j12-bz53299/core/src/main/java/org/apache/log4j/xml/XMLLayout.java (from r1345516, logging/log4j/branches/log4j12-bz53299/src/main/java/org/apache/log4j/xml/XMLLayout.java)
URL: http://svn.apache.org/viewvc/logging/log4j/branches/log4j12-bz53299/core/src/main/java/org/apache/log4j/xml/XMLLayout.java?p2=logging/log4j/branches/log4j12-bz53299/core/src/main/java/org/apache/log4j/xml/XMLLayout.java&p1=logging/log4j/branches/log4j12-bz53299/src/main/java/org/apache/log4j/xml/XMLLayout.java&r1=1345516&r2=1345524&rev=1345524&view=diff
==============================================================================
(empty)
Propchange: logging/log4j/branches/log4j12-bz53299/core/src/main/java/org/apache/log4j/xml/XMLLayout.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: logging/log4j/branches/log4j12-bz53299/core/src/main/java/org/apache/log4j/xml/XMLLayout.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Copied: logging/log4j/branches/log4j12-bz53299/core/src/main/java/org/apache/log4j/xml/package.html (from r1345516, logging/log4j/branches/log4j12-bz53299/src/main/java/org/apache/log4j/xml/package.html)
URL: http://svn.apache.org/viewvc/logging/log4j/branches/log4j12-bz53299/core/src/main/java/org/apache/log4j/xml/package.html?p2=logging/log4j/branches/log4j12-bz53299/core/src/main/java/org/apache/log4j/xml/package.html&p1=logging/log4j/branches/log4j12-bz53299/src/main/java/org/apache/log4j/xml/package.html&r1=1345516&r2=1345524&rev=1345524&view=diff
==============================================================================
(empty)
Propchange: logging/log4j/branches/log4j12-bz53299/core/src/main/java/org/apache/log4j/xml/package.html
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: logging/log4j/branches/log4j12-bz53299/core/src/main/java/org/apache/log4j/xml/package.html
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Copied: logging/log4j/branches/log4j12-bz53299/core/src/main/javadoc/org/apache/log4j/xml/docFiles/log4j.dtd (from r1345516, logging/log4j/branches/log4j12-bz53299/src/main/javadoc/org/apache/log4j/xml/doc-files/log4j.dtd)
URL: http://svn.apache.org/viewvc/logging/log4j/branches/log4j12-bz53299/core/src/main/javadoc/org/apache/log4j/xml/docFiles/log4j.dtd?p2=logging/log4j/branches/log4j12-bz53299/core/src/main/javadoc/org/apache/log4j/xml/docFiles/log4j.dtd&p1=logging/log4j/branches/log4j12-bz53299/src/main/javadoc/org/apache/log4j/xml/doc-files/log4j.dtd&r1=1345516&r2=1345524&rev=1345524&view=diff
==============================================================================
(empty)
Propchange: logging/log4j/branches/log4j12-bz53299/core/src/main/javadoc/org/apache/log4j/xml/docFiles/log4j.dtd
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: logging/log4j/branches/log4j12-bz53299/core/src/main/javadoc/org/apache/log4j/xml/docFiles/log4j.dtd
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Copied: logging/log4j/branches/log4j12-bz53299/core/src/main/javadoc/org/apache/log4j/xml/examples/XMLSample.java (from r1345516, logging/log4j/branches/log4j12-bz53299/src/main/javadoc/org/apache/log4j/xml/examples/XMLSample.java)
URL: http://svn.apache.org/viewvc/logging/log4j/branches/log4j12-bz53299/core/src/main/javadoc/org/apache/log4j/xml/examples/XMLSample.java?p2=logging/log4j/branches/log4j12-bz53299/core/src/main/javadoc/org/apache/log4j/xml/examples/XMLSample.java&p1=logging/log4j/branches/log4j12-bz53299/src/main/javadoc/org/apache/log4j/xml/examples/XMLSample.java&r1=1345516&r2=1345524&rev=1345524&view=diff
==============================================================================
(empty)
Propchange: logging/log4j/branches/log4j12-bz53299/core/src/main/javadoc/org/apache/log4j/xml/examples/XMLSample.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: logging/log4j/branches/log4j12-bz53299/core/src/main/javadoc/org/apache/log4j/xml/examples/XMLSample.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Copied: logging/log4j/branches/log4j12-bz53299/core/src/main/javadoc/org/apache/log4j/xml/examples/docFiles/XMLSample.java (from r1345516, logging/log4j/branches/log4j12-bz53299/src/main/javadoc/org/apache/log4j/xml/examples/doc-files/XMLSample.java)
URL: http://svn.apache.org/viewvc/logging/log4j/branches/log4j12-bz53299/core/src/main/javadoc/org/apache/log4j/xml/examples/docFiles/XMLSample.java?p2=logging/log4j/branches/log4j12-bz53299/core/src/main/javadoc/org/apache/log4j/xml/examples/docFiles/XMLSample.java&p1=logging/log4j/branches/log4j12-bz53299/src/main/javadoc/org/apache/log4j/xml/examples/doc-files/XMLSample.java&r1=1345516&r2=1345524&rev=1345524&view=diff
==============================================================================
(empty)
Propchange: logging/log4j/branches/log4j12-bz53299/core/src/main/javadoc/org/apache/log4j/xml/examples/docFiles/XMLSample.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: logging/log4j/branches/log4j12-bz53299/core/src/main/javadoc/org/apache/log4j/xml/examples/docFiles/XMLSample.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Copied: logging/log4j/branches/log4j12-bz53299/core/src/main/javadoc/org/apache/log4j/xml/examples/docFiles/sample1.xml (from r1345516, logging/log4j/branches/log4j12-bz53299/src/main/javadoc/org/apache/log4j/xml/examples/doc-files/sample1.xml)
URL: http://svn.apache.org/viewvc/logging/log4j/branches/log4j12-bz53299/core/src/main/javadoc/org/apache/log4j/xml/examples/docFiles/sample1.xml?p2=logging/log4j/branches/log4j12-bz53299/core/src/main/javadoc/org/apache/log4j/xml/examples/docFiles/sample1.xml&p1=logging/log4j/branches/log4j12-bz53299/src/main/javadoc/org/apache/log4j/xml/examples/doc-files/sample1.xml&r1=1345516&r2=1345524&rev=1345524&view=diff
==============================================================================
(empty)
Propchange: logging/log4j/branches/log4j12-bz53299/core/src/main/javadoc/org/apache/log4j/xml/examples/docFiles/sample1.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: logging/log4j/branches/log4j12-bz53299/core/src/main/javadoc/org/apache/log4j/xml/examples/docFiles/sample1.xml
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Copied: logging/log4j/branches/log4j12-bz53299/core/src/main/javadoc/org/apache/log4j/xml/examples/docFiles/sample2.xml (from r1345516, logging/log4j/branches/log4j12-bz53299/src/main/javadoc/org/apache/log4j/xml/examples/doc-files/sample2.xml)
URL: http://svn.apache.org/viewvc/logging/log4j/branches/log4j12-bz53299/core/src/main/javadoc/org/apache/log4j/xml/examples/docFiles/sample2.xml?p2=logging/log4j/branches/log4j12-bz53299/core/src/main/javadoc/org/apache/log4j/xml/examples/docFiles/sample2.xml&p1=logging/log4j/branches/log4j12-bz53299/src/main/javadoc/org/apache/log4j/xml/examples/doc-files/sample2.xml&r1=1345516&r2=1345524&rev=1345524&view=diff
==============================================================================
(empty)
Propchange: logging/log4j/branches/log4j12-bz53299/core/src/main/javadoc/org/apache/log4j/xml/examples/docFiles/sample2.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: logging/log4j/branches/log4j12-bz53299/core/src/main/javadoc/org/apache/log4j/xml/examples/docFiles/sample2.xml
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Copied: logging/log4j/branches/log4j12-bz53299/core/src/main/javadoc/org/apache/log4j/xml/examples/docFiles/sample3.xml (from r1345516, logging/log4j/branches/log4j12-bz53299/src/main/javadoc/org/apache/log4j/xml/examples/doc-files/sample3.xml)
URL: http://svn.apache.org/viewvc/logging/log4j/branches/log4j12-bz53299/core/src/main/javadoc/org/apache/log4j/xml/examples/docFiles/sample3.xml?p2=logging/log4j/branches/log4j12-bz53299/core/src/main/javadoc/org/apache/log4j/xml/examples/docFiles/sample3.xml&p1=logging/log4j/branches/log4j12-bz53299/src/main/javadoc/org/apache/log4j/xml/examples/doc-files/sample3.xml&r1=1345516&r2=1345524&rev=1345524&view=diff
==============================================================================
(empty)
Propchange: logging/log4j/branches/log4j12-bz53299/core/src/main/javadoc/org/apache/log4j/xml/examples/docFiles/sample3.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: logging/log4j/branches/log4j12-bz53299/core/src/main/javadoc/org/apache/log4j/xml/examples/docFiles/sample3.xml
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Copied: logging/log4j/branches/log4j12-bz53299/core/src/main/javadoc/org/apache/log4j/xml/examples/docFiles/sample4.xml (from r1345516, logging/log4j/branches/log4j12-bz53299/src/main/javadoc/org/apache/log4j/xml/examples/doc-files/sample4.xml)
URL: http://svn.apache.org/viewvc/logging/log4j/branches/log4j12-bz53299/core/src/main/javadoc/org/apache/log4j/xml/examples/docFiles/sample4.xml?p2=logging/log4j/branches/log4j12-bz53299/core/src/main/javadoc/org/apache/log4j/xml/examples/docFiles/sample4.xml&p1=logging/log4j/branches/log4j12-bz53299/src/main/javadoc/org/apache/log4j/xml/examples/doc-files/sample4.xml&r1=1345516&r2=1345524&rev=1345524&view=diff
==============================================================================
(empty)
Propchange: logging/log4j/branches/log4j12-bz53299/core/src/main/javadoc/org/apache/log4j/xml/examples/docFiles/sample4.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: logging/log4j/branches/log4j12-bz53299/core/src/main/javadoc/org/apache/log4j/xml/examples/docFiles/sample4.xml
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Copied: logging/log4j/branches/log4j12-bz53299/core/src/main/javadoc/org/apache/log4j/xml/examples/docFiles/sample5.xml (from r1345516, logging/log4j/branches/log4j12-bz53299/src/main/javadoc/org/apache/log4j/xml/examples/doc-files/sample5.xml)
URL: http://svn.apache.org/viewvc/logging/log4j/branches/log4j12-bz53299/core/src/main/javadoc/org/apache/log4j/xml/examples/docFiles/sample5.xml?p2=logging/log4j/branches/log4j12-bz53299/core/src/main/javadoc/org/apache/log4j/xml/examples/docFiles/sample5.xml&p1=logging/log4j/branches/log4j12-bz53299/src/main/javadoc/org/apache/log4j/xml/examples/doc-files/sample5.xml&r1=1345516&r2=1345524&rev=1345524&view=diff
==============================================================================
(empty)
Propchange: logging/log4j/branches/log4j12-bz53299/core/src/main/javadoc/org/apache/log4j/xml/examples/docFiles/sample5.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: logging/log4j/branches/log4j12-bz53299/core/src/main/javadoc/org/apache/log4j/xml/examples/docFiles/sample5.xml
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Copied: logging/log4j/branches/log4j12-bz53299/core/src/main/resources/META-INF/LICENSE (from r1345516, logging/log4j/branches/log4j12-bz53299/src/main/resources/META-INF/LICENSE)
URL: http://svn.apache.org/viewvc/logging/log4j/branches/log4j12-bz53299/core/src/main/resources/META-INF/LICENSE?p2=logging/log4j/branches/log4j12-bz53299/core/src/main/resources/META-INF/LICENSE&p1=logging/log4j/branches/log4j12-bz53299/src/main/resources/META-INF/LICENSE&r1=1345516&r2=1345524&rev=1345524&view=diff
==============================================================================
(empty)
Propchange: logging/log4j/branches/log4j12-bz53299/core/src/main/resources/META-INF/LICENSE
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: logging/log4j/branches/log4j12-bz53299/core/src/main/resources/META-INF/LICENSE
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Copied: logging/log4j/branches/log4j12-bz53299/core/src/main/resources/META-INF/NOTICE (from r1345516, logging/log4j/branches/log4j12-bz53299/src/main/resources/META-INF/NOTICE)
URL: http://svn.apache.org/viewvc/logging/log4j/branches/log4j12-bz53299/core/src/main/resources/META-INF/NOTICE?p2=logging/log4j/branches/log4j12-bz53299/core/src/main/resources/META-INF/NOTICE&p1=logging/log4j/branches/log4j12-bz53299/src/main/resources/META-INF/NOTICE&r1=1345516&r2=1345524&rev=1345524&view=diff
==============================================================================
(empty)
Propchange: logging/log4j/branches/log4j12-bz53299/core/src/main/resources/META-INF/NOTICE
------------------------------------------------------------------------------
svn:eol-style = native
Copied: logging/log4j/branches/log4j12-bz53299/core/src/main/resources/org/apache/log4j/xml/log4j.dtd (from r1345516, logging/log4j/branches/log4j12-bz53299/src/main/resources/org/apache/log4j/xml/log4j.dtd)
URL: http://svn.apache.org/viewvc/logging/log4j/branches/log4j12-bz53299/core/src/main/resources/org/apache/log4j/xml/log4j.dtd?p2=logging/log4j/branches/log4j12-bz53299/core/src/main/resources/org/apache/log4j/xml/log4j.dtd&p1=logging/log4j/branches/log4j12-bz53299/src/main/resources/org/apache/log4j/xml/log4j.dtd&r1=1345516&r2=1345524&rev=1345524&view=diff
==============================================================================
(empty)
Propchange: logging/log4j/branches/log4j12-bz53299/core/src/main/resources/org/apache/log4j/xml/log4j.dtd
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: logging/log4j/branches/log4j12-bz53299/core/src/main/resources/org/apache/log4j/xml/log4j.dtd
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Copied: logging/log4j/branches/log4j12-bz53299/core/src/site/apt/download.apt (from r1345516, logging/log4j/branches/log4j12-bz53299/src/site/apt/download.apt)
URL: http://svn.apache.org/viewvc/logging/log4j/branches/log4j12-bz53299/core/src/site/apt/download.apt?p2=logging/log4j/branches/log4j12-bz53299/core/src/site/apt/download.apt&p1=logging/log4j/branches/log4j12-bz53299/src/site/apt/download.apt&r1=1345516&r2=1345524&rev=1345524&view=diff
==============================================================================
(empty)
Propchange: logging/log4j/branches/log4j12-bz53299/core/src/site/apt/download.apt
------------------------------------------------------------------------------
svn:eol-style = native
Copied: logging/log4j/branches/log4j12-bz53299/core/src/site/apt/index.apt (from r1345516, logging/log4j/branches/log4j12-bz53299/src/site/apt/index.apt)
URL: http://svn.apache.org/viewvc/logging/log4j/branches/log4j12-bz53299/core/src/site/apt/index.apt?p2=logging/log4j/branches/log4j12-bz53299/core/src/site/apt/index.apt&p1=logging/log4j/branches/log4j12-bz53299/src/site/apt/index.apt&r1=1345516&r2=1345524&rev=1345524&view=diff
==============================================================================
(empty)
Propchange: logging/log4j/branches/log4j12-bz53299/core/src/site/apt/index.apt
------------------------------------------------------------------------------
svn:eol-style = native
Copied: logging/log4j/branches/log4j12-bz53299/core/src/site/apt/publications.apt (from r1345516, logging/log4j/branches/log4j12-bz53299/src/site/apt/publications.apt)
URL: http://svn.apache.org/viewvc/logging/log4j/branches/log4j12-bz53299/core/src/site/apt/publications.apt?p2=logging/log4j/branches/log4j12-bz53299/core/src/site/apt/publications.apt&p1=logging/log4j/branches/log4j12-bz53299/src/site/apt/publications.apt&r1=1345516&r2=1345524&rev=1345524&view=diff
==============================================================================
(empty)
Propchange: logging/log4j/branches/log4j12-bz53299/core/src/site/apt/publications.apt
------------------------------------------------------------------------------
svn:eol-style = native
Copied: logging/log4j/branches/log4j12-bz53299/core/src/site/apt/roadmap.apt (from r1345516, logging/log4j/branches/log4j12-bz53299/src/site/apt/roadmap.apt)
URL: http://svn.apache.org/viewvc/logging/log4j/branches/log4j12-bz53299/core/src/site/apt/roadmap.apt?p2=logging/log4j/branches/log4j12-bz53299/core/src/site/apt/roadmap.apt&p1=logging/log4j/branches/log4j12-bz53299/src/site/apt/roadmap.apt&r1=1345516&r2=1345524&rev=1345524&view=diff
==============================================================================
(empty)
Propchange: logging/log4j/branches/log4j12-bz53299/core/src/site/apt/roadmap.apt
------------------------------------------------------------------------------
svn:eol-style = native
Copied: logging/log4j/branches/log4j12-bz53299/core/src/site/fml/faq.fml (from r1345516, logging/log4j/branches/log4j12-bz53299/src/site/fml/faq.fml)
URL: http://svn.apache.org/viewvc/logging/log4j/branches/log4j12-bz53299/core/src/site/fml/faq.fml?p2=logging/log4j/branches/log4j12-bz53299/core/src/site/fml/faq.fml&p1=logging/log4j/branches/log4j12-bz53299/src/site/fml/faq.fml&r1=1345516&r2=1345524&rev=1345524&view=diff
==============================================================================
(empty)
Copied: logging/log4j/branches/log4j12-bz53299/core/src/site/resources/css/site.css (from r1345516, logging/log4j/branches/log4j12-bz53299/src/site/resources/css/site.css)
URL: http://svn.apache.org/viewvc/logging/log4j/branches/log4j12-bz53299/core/src/site/resources/css/site.css?p2=logging/log4j/branches/log4j12-bz53299/core/src/site/resources/css/site.css&p1=logging/log4j/branches/log4j12-bz53299/src/site/resources/css/site.css&r1=1345516&r2=1345524&rev=1345524&view=diff
==============================================================================
(empty)
Propchange: logging/log4j/branches/log4j12-bz53299/core/src/site/resources/css/site.css
------------------------------------------------------------------------------
svn:eol-style = native
Copied: logging/log4j/branches/log4j12-bz53299/core/src/site/resources/images/logo.jpg (from r1345516, logging/log4j/branches/log4j12-bz53299/src/site/resources/images/logo.jpg)
URL: http://svn.apache.org/viewvc/logging/log4j/branches/log4j12-bz53299/core/src/site/resources/images/logo.jpg?p2=logging/log4j/branches/log4j12-bz53299/core/src/site/resources/images/logo.jpg&p1=logging/log4j/branches/log4j12-bz53299/src/site/resources/images/logo.jpg&r1=1345516&r2=1345524&rev=1345524&view=diff
==============================================================================
Binary files - no diff available.
Propchange: logging/log4j/branches/log4j12-bz53299/core/src/site/resources/images/logo.jpg
------------------------------------------------------------------------------
svn:mime-type = image/jpeg
Copied: logging/log4j/branches/log4j12-bz53299/core/src/site/resources/images/ls-logo.jpg (from r1345516, logging/log4j/branches/log4j12-bz53299/src/site/resources/images/ls-logo.jpg)
URL: http://svn.apache.org/viewvc/logging/log4j/branches/log4j12-bz53299/core/src/site/resources/images/ls-logo.jpg?p2=logging/log4j/branches/log4j12-bz53299/core/src/site/resources/images/ls-logo.jpg&p1=logging/log4j/branches/log4j12-bz53299/src/site/resources/images/ls-logo.jpg&r1=1345516&r2=1345524&rev=1345524&view=diff
==============================================================================
Binary files - no diff available.
Propchange: logging/log4j/branches/log4j12-bz53299/core/src/site/resources/images/ls-logo.jpg
------------------------------------------------------------------------------
svn:executable = *
Propchange: logging/log4j/branches/log4j12-bz53299/core/src/site/resources/images/ls-logo.jpg
------------------------------------------------------------------------------
svn:mime-type = image/jpeg
Copied: logging/log4j/branches/log4j12-bz53299/core/src/site/resources/images/od.gif (from r1345516, logging/log4j/branches/log4j12-bz53299/src/site/resources/images/od.gif)
URL: http://svn.apache.org/viewvc/logging/log4j/branches/log4j12-bz53299/core/src/site/resources/images/od.gif?p2=logging/log4j/branches/log4j12-bz53299/core/src/site/resources/images/od.gif&p1=logging/log4j/branches/log4j12-bz53299/src/site/resources/images/od.gif&r1=1345516&r2=1345524&rev=1345524&view=diff
==============================================================================
Binary files - no diff available.
Propchange: logging/log4j/branches/log4j12-bz53299/core/src/site/resources/images/od.gif
------------------------------------------------------------------------------
svn:mime-type = image/gif
Copied: logging/log4j/branches/log4j12-bz53299/core/src/site/site.xml (from r1345516, logging/log4j/branches/log4j12-bz53299/src/site/site.xml)
URL: http://svn.apache.org/viewvc/logging/log4j/branches/log4j12-bz53299/core/src/site/site.xml?p2=logging/log4j/branches/log4j12-bz53299/core/src/site/site.xml&p1=logging/log4j/branches/log4j12-bz53299/src/site/site.xml&r1=1345516&r2=1345524&rev=1345524&view=diff
==============================================================================
(empty)
Propchange: logging/log4j/branches/log4j12-bz53299/core/src/site/site.xml
------------------------------------------------------------------------------
svn:eol-style = native
Copied: logging/log4j/branches/log4j12-bz53299/core/src/site/xdoc/manual.xml (from r1345516, logging/log4j/branches/log4j12-bz53299/src/site/xdoc/manual.xml)
URL: http://svn.apache.org/viewvc/logging/log4j/branches/log4j12-bz53299/core/src/site/xdoc/manual.xml?p2=logging/log4j/branches/log4j12-bz53299/core/src/site/xdoc/manual.xml&p1=logging/log4j/branches/log4j12-bz53299/src/site/xdoc/manual.xml&r1=1345516&r2=1345524&rev=1345524&view=diff
==============================================================================
(empty)
Propchange: logging/log4j/branches/log4j12-bz53299/core/src/site/xdoc/manual.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: logging/log4j/branches/log4j12-bz53299/core/src/site/xdoc/manual.xml
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Copied: logging/log4j/branches/log4j12-bz53299/core/src/test/README (from r1345516, logging/log4j/branches/log4j12-bz53299/tests/README)
URL: http://svn.apache.org/viewvc/logging/log4j/branches/log4j12-bz53299/core/src/test/README?p2=logging/log4j/branches/log4j12-bz53299/core/src/test/README&p1=logging/log4j/branches/log4j12-bz53299/tests/README&r1=1345516&r2=1345524&rev=1345524&view=diff
==============================================================================
(empty)
Propchange: logging/log4j/branches/log4j12-bz53299/core/src/test/README
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: logging/log4j/branches/log4j12-bz53299/core/src/test/README
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Copied: logging/log4j/branches/log4j12-bz53299/core/src/test/build.properties.sample (from r1345516, logging/log4j/branches/log4j12-bz53299/tests/build.properties.sample)
URL: http://svn.apache.org/viewvc/logging/log4j/branches/log4j12-bz53299/core/src/test/build.properties.sample?p2=logging/log4j/branches/log4j12-bz53299/core/src/test/build.properties.sample&p1=logging/log4j/branches/log4j12-bz53299/tests/build.properties.sample&r1=1345516&r2=1345524&rev=1345524&view=diff
==============================================================================
(empty)
Copied: logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/AsyncAppenderTestCase.java (from r1345516, logging/log4j/branches/log4j12-bz53299/tests/src/java/org/apache/log4j/AsyncAppenderTestCase.java)
URL: http://svn.apache.org/viewvc/logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/AsyncAppenderTestCase.java?p2=logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/AsyncAppenderTestCase.java&p1=logging/log4j/branches/log4j12-bz53299/tests/src/java/org/apache/log4j/AsyncAppenderTestCase.java&r1=1345516&r2=1345524&rev=1345524&view=diff
==============================================================================
(empty)
Propchange: logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/AsyncAppenderTestCase.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/AsyncAppenderTestCase.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Copied: logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/CategoryTest.java (from r1345516, logging/log4j/branches/log4j12-bz53299/tests/src/java/org/apache/log4j/CategoryTest.java)
URL: http://svn.apache.org/viewvc/logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/CategoryTest.java?p2=logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/CategoryTest.java&p1=logging/log4j/branches/log4j12-bz53299/tests/src/java/org/apache/log4j/CategoryTest.java&r1=1345516&r2=1345524&rev=1345524&view=diff
==============================================================================
(empty)
Propchange: logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/CategoryTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/CoreTestSuite.java
URL: http://svn.apache.org/viewvc/logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/CoreTestSuite.java?rev=1345524&view=auto
==============================================================================
--- logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/CoreTestSuite.java (added)
+++ logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/CoreTestSuite.java Sat Jun 2 15:35:46 2012
@@ -0,0 +1,64 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.log4j;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+import org.apache.log4j.spi.LoggingEventTest;
+
+
+/**
+ * Suite of log4j class level unit tests.
+ *
+ */
+public class CoreTestSuite {
+ /**
+ * Constructs test suite.
+ * @return test suite
+ */
+ public static Test suite() {
+ TestSuite s = new TestSuite();
+ s.addTestSuite(LoggingEventTest.class);
+ s.addTestSuite(org.apache.log4j.LevelTest.class);
+ s.addTestSuite(org.apache.log4j.PriorityTest.class);
+ s.addTestSuite(org.apache.log4j.CategoryTest.class);
+ s.addTestSuite(org.apache.log4j.FileAppenderTest.class);
+ s.addTestSuite(org.apache.log4j.LogManagerTest.class);
+ s.addTestSuite(org.apache.log4j.helpers.LogLogTest.class);
+ s.addTestSuite(org.apache.log4j.LayoutTest.class);
+ s.addTestSuite(org.apache.log4j.helpers.DateLayoutTest.class);
+ s.addTestSuite(org.apache.log4j.TTCCLayoutTest.class);
+ s.addTestSuite(org.apache.log4j.xml.XMLLayoutTest.class);
+ s.addTestSuite(org.apache.log4j.HTMLLayoutTest.class);
+ s.addTestSuite(org.apache.log4j.PatternLayoutTest.class);
+ s.addTestSuite(org.apache.log4j.spi.LoggingEventTest.class);
+ s.addTestSuite(org.apache.log4j.spi.ThrowableInformationTest.class);
+ s.addTestSuite(org.apache.log4j.spi.LocationInfoTest.class);
+ s.addTestSuite(org.apache.log4j.PropertyConfiguratorTest.class);
+ s.addTestSuite(org.apache.log4j.DefaultThrowableRendererTest.class);
+ s.addTestSuite(org.apache.log4j.EnhancedThrowableRendererTest.class);
+ s.addTestSuite(org.apache.log4j.TestLogXF.class);
+ s.addTestSuite(org.apache.log4j.TestLogMF.class);
+ s.addTestSuite(org.apache.log4j.TestLogSF.class);
+ s.addTestSuite(org.apache.log4j.pattern.CachedDateFormatTest.class);
+ s.addTestSuite(org.apache.log4j.pattern.FormattingInfoTest.class);
+ s.addTestSuite(org.apache.log4j.pattern.NameAbbreviatorTest.class);
+ s.addTestSuite(org.apache.log4j.pattern.PatternParserTest.class);
+ s.addTestSuite(org.apache.log4j.helpers.UtilLoggingLevelTest.class);
+ return s;
+ }
+}
Propchange: logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/CoreTestSuite.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/DRFATestCase.java
URL: http://svn.apache.org/viewvc/logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/DRFATestCase.java?rev=1345524&view=auto
==============================================================================
--- logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/DRFATestCase.java (added)
+++ logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/DRFATestCase.java Sat Jun 2 15:35:46 2012
@@ -0,0 +1,512 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.log4j;
+
+import junit.framework.TestCase;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.FileInputStream;
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+import java.util.Date;
+import org.apache.log4j.util.Compare;
+
+/**
+ Exhaustive test of the DailyRollingFileAppender compute algorithm.
+
+ @author Ceki Gülcü
+ @author Curt Arnold
+ */
+public class DRFATestCase extends TestCase {
+
+ /**
+ * Create new test.
+ * @param name test name.
+ */
+ public DRFATestCase(final String name) {
+ super(name);
+ }
+
+ /**
+ * Reset configuration after every test.
+ */
+ public void tearDown() {
+ LogManager.resetConfiguration();
+ }
+
+ /**
+ * Test prediction of check period.
+ */
+ public
+ void testComputeCheckPeriod() {
+ DailyRollingFileAppender drfa = new DailyRollingFileAppender();
+ drfa.setName("testComputeCheckPeriod");
+ drfa.setDatePattern("yyyy-MM-dd.'log'");
+ drfa.activateOptions();
+
+ drfa.computeCheckPeriod();
+ assertEquals(drfa.computeCheckPeriod(),
+ DailyRollingFileAppender.TOP_OF_DAY);
+
+ drfa.setDatePattern("yyyy-MM-dd mm.'log'");
+ assertEquals(drfa.computeCheckPeriod(),
+ DailyRollingFileAppender.TOP_OF_MINUTE);
+
+ drfa.setDatePattern("yyyy-MM-dd a.'log'");
+ assertEquals(drfa.computeCheckPeriod(),
+ DailyRollingFileAppender.HALF_DAY);
+
+ drfa.setDatePattern("yyyy-MM-dd HH.'log'");
+ assertEquals(drfa.computeCheckPeriod(),
+ DailyRollingFileAppender.TOP_OF_HOUR);
+
+ drfa.setDatePattern("yyyy-MM.'log'");
+ assertEquals(drfa.computeCheckPeriod(),
+ DailyRollingFileAppender.TOP_OF_MONTH);
+
+ drfa.setDatePattern("'log'HH'log'");
+ assertEquals(drfa.computeCheckPeriod(),
+ DailyRollingFileAppender.TOP_OF_HOUR);
+ }
+
+
+ /**
+ * Test of RollingCalendar.
+ */
+ public
+ void testRC1() {
+ RollingCalendar rc = new RollingCalendar();
+ rc.setType(DailyRollingFileAppender.TOP_OF_DAY);
+
+ Calendar c = Calendar.getInstance();
+
+ // jan, mar, may, july, aug, oct, dec have 31 days
+ int [] M31 = {0,2,4,6,7,9,11};
+
+ for(int i = 0; i < M31.length; i ++) {
+ for(int d = 1; d <=31; d++) {
+ for(int h = 0; h < 23; h++) {
+ c.clear();
+ c.set(Calendar.YEAR, 20);
+ c.set(Calendar.MONTH, Calendar.JANUARY + M31[i]);
+ c.set(Calendar.DAY_OF_MONTH, d);
+ c.set(Calendar.HOUR_OF_DAY, h);
+ c.set(Calendar.MINUTE, 10);
+ c.set(Calendar.SECOND, 10);
+ c.set(Calendar.MILLISECOND, 88);
+
+ c.setTime(rc.getNextCheckDate(c.getTime()));
+ if(d == 31) {
+ assertEquals(c.get(Calendar.MONTH),(Calendar.JANUARY+M31[i]+1)%12);
+ assertEquals(c.get(Calendar.DAY_OF_MONTH), 1);
+ } else {
+ assertEquals(c.get(Calendar.MONTH), Calendar.JANUARY+M31[i]);
+ assertEquals(c.get(Calendar.DAY_OF_MONTH), d+1);
+ }
+ assertEquals(c.get(Calendar.HOUR_OF_DAY), 0);
+ assertEquals(c.get(Calendar.MINUTE), 0);
+ assertEquals(c.get(Calendar.SECOND), 0);
+ assertEquals(c.get(Calendar.MILLISECOND), 0);
+ }
+ }
+ }
+ }
+
+ /**
+ * RollingCalendar test.
+ */
+ public
+ void testRC2() {
+ RollingCalendar rc = new RollingCalendar();
+
+ rc.setType(DailyRollingFileAppender.TOP_OF_HOUR);
+
+ Calendar c = Calendar.getInstance();
+
+ // jan, mar, may, july, aug, oct, dec have 31 days
+ int [] M31 = {0,2,4,6,7,9,11};
+
+ for(int i = 0; i < M31.length; i ++) {
+ System.out.println("Month = "+(M31[i]+1));
+ for(int d = 1; d <= 31; d++) {
+ for(int h = 0; h < 23; h++) {
+ for(int m = 0; m <= 59; m++) {
+ c.clear();
+ c.set(Calendar.YEAR, 20);
+ c.set(Calendar.MONTH, Calendar.JANUARY + M31[i]);
+ c.set(Calendar.DAY_OF_MONTH, d);
+ c.set(Calendar.HOUR_OF_DAY, h);
+ c.set(Calendar.MINUTE, m);
+ c.set(Calendar.SECOND, 12);
+ c.set(Calendar.MILLISECOND, 88);
+
+ boolean dltState0 = c.getTimeZone().inDaylightTime(c.getTime());
+ c.setTime(rc.getNextCheckDate(c.getTime()));
+ boolean dltState1 = c.getTimeZone().inDaylightTime(c.getTime());
+
+ assertEquals(c.get(Calendar.MILLISECOND), 0);
+ assertEquals(c.get(Calendar.SECOND), 0);
+ assertEquals(c.get(Calendar.MINUTE), 0);
+
+ if(dltState0 == dltState1) {
+ assertEquals(c.get(Calendar.HOUR_OF_DAY), (h+1)%24);
+ } else {
+ // returning to standard time
+ if(dltState0) {
+ assertEquals(c.get(Calendar.HOUR_OF_DAY), h);
+ } else { // switching to day light saving time
+ //System.err.println("m="+m+", h="+h+", d="+d+", i="+i);
+ //if(h==2) {
+ // System.err.println(c);
+ //}
+ //assertEquals(c.get(Calendar.HOUR_OF_DAY), (h+2)%24);
+ }
+ }
+
+ if(h == 23) {
+ assertEquals(c.get(Calendar.DAY_OF_MONTH), (d+1)%32);
+ if(d == 31) {
+ assertEquals(c.get(Calendar.MONTH),
+ (Calendar.JANUARY+M31[i]+1)%12);
+ } else {
+ assertEquals(c.get(Calendar.MONTH),
+ Calendar.JANUARY+M31[i]);
+ }
+ } else {
+ assertEquals(c.get(Calendar.DAY_OF_MONTH), d);
+ assertEquals(c.get(Calendar.MONTH), Calendar.JANUARY+M31[i]);
+ }
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * RollingCalendar test.
+ */
+ public
+ void testRC3() {
+ RollingCalendar rc = new RollingCalendar();
+
+ rc.setType(DailyRollingFileAppender.TOP_OF_MINUTE);
+
+ int[] S = {0, 1, 5, 10, 21, 30, 59};
+ int[] M = {0, 1, 5, 10, 21, 30, 59};
+ Calendar c = Calendar.getInstance();
+
+ // jan, mar, may, july, aug, oct, dec have 31 days
+ int [] M31 = {2,9,0,4,6,7,11};
+
+ for(int i = 0; i < M31.length; i ++) {
+ System.out.println("Month = "+(M31[i]+1));
+ for(int d = 1; d <= 31; d++) {
+ for(int h = 0; h < 23; h++) {
+ for(int m = 0; m < M.length; m++) {
+ for(int s = 0; s < S.length; s++) {
+ c.clear();
+ c.set(Calendar.YEAR, 20);
+ c.set(Calendar.MONTH, Calendar.JANUARY + M31[i]);
+ c.set(Calendar.DAY_OF_MONTH, d);
+ c.set(Calendar.HOUR_OF_DAY, h);
+ c.set(Calendar.MINUTE, M[m]);
+ c.set(Calendar.SECOND, S[s]);
+ c.set(Calendar.MILLISECOND, 88);
+ c.add(Calendar.MILLISECOND, 1);
+
+ boolean dltState0 = c.getTimeZone().inDaylightTime(c.getTime());
+
+ c.setTime(rc.getNextCheckDate(c.getTime()));
+ c.add(Calendar.MILLISECOND, 0);
+ boolean dltState1 = c.getTimeZone().inDaylightTime(c.getTime());
+
+ assertEquals(c.get(Calendar.MILLISECOND), 0);
+ assertEquals(c.get(Calendar.SECOND), 0);
+ assertEquals(c.get(Calendar.MINUTE), (M[m]+1)%60);
+
+ if(M[m] == 59) {
+ if(dltState0 == dltState1) {
+ assertEquals(c.get(Calendar.HOUR_OF_DAY), (h+1)%24);
+ }
+ if(h == 23) {
+ assertEquals(c.get(Calendar.DAY_OF_MONTH), (d+1)%32);
+ if(d == 31) {
+ assertEquals(c.get(Calendar.MONTH),
+ (Calendar.JANUARY+M31[i]+1)%12);
+ } else {
+ assertEquals(c.get(Calendar.MONTH),
+ Calendar.JANUARY+M31[i]);
+ }
+ } else {
+ assertEquals(c.get(Calendar.DAY_OF_MONTH), d);
+ }
+ } else {
+ // allow discrepancies only if we are switching from std to dls time
+ if(c.get(Calendar.HOUR_OF_DAY) != h) {
+ c.add(Calendar.HOUR_OF_DAY, +1);
+ boolean dltState2 = c.getTimeZone().inDaylightTime(c.getTime());
+ if(dltState1 == dltState2) {
+ fail("No switch");
+ }
+ }
+ assertEquals(c.get(Calendar.DAY_OF_MONTH), d);
+ assertEquals(c.get(Calendar.MONTH), Calendar.JANUARY+M31[i]);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+
+ /**
+ * Common test code for 3 parameter constructor.
+ *
+ * @throws IOException if IOException during test.
+ */
+ public void test3Param(final String datePattern,
+ final String filename) throws IOException {
+ Layout layout = new SimpleLayout();
+ DailyRollingFileAppender appender =
+ new DailyRollingFileAppender(layout, filename, datePattern);
+ assertEquals(datePattern, appender.getDatePattern());
+ Logger root = Logger.getRootLogger();
+ root.addAppender(appender);
+ root.info("Hello, World");
+ assertTrue(new File(filename).exists());
+ }
+
+ /**
+ * Creates an appender with an unrecognized top-of-year pattern.
+ *
+ * @throws IOException if IOException during test.
+ */
+ public void testTopOfYear() throws IOException {
+ try {
+ test3Param("'.'yyyy", "output/drfa_topOfYear.log");
+ fail("Expected illegal state exception.");
+ } catch(IllegalStateException ex) {
+ assertNotNull(ex);
+ }
+ }
+
+ /**
+ * Creates an appender with a top-of-month pattern.
+ *
+ * @throws IOException if IOException during test.
+ */
+ public void testTopOfMonth() throws IOException {
+ test3Param("'.'yyyy-MM", "output/drfa_topOfMonth.log");
+ }
+
+
+ /**
+ * Creates an appender with a top-of-week pattern.
+ *
+ * @throws IOException if IOException during test.
+ */
+ public void testTopOfWeek() throws IOException {
+ test3Param("'.'yyyy-w", "output/drfa_topOfWeek.log");
+ }
+
+ /**
+ * Creates an appender with a top-of-day pattern.
+ *
+ * @throws IOException if IOException during test.
+ */
+ public void testTopOfDay() throws IOException {
+ test3Param("'.'yyyy-MM-dd", "output/drfa_topOfDay.log");
+ }
+
+
+ /**
+ * Creates an appender with a half day pattern.
+ *
+ * @throws IOException if IOException during test.
+ */
+ public void testHalfDay() throws IOException {
+ test3Param("'.'yyyy-MM-dd-a", "output/drfa_halfDay.log");
+ }
+
+ /**
+ * Creates an appender with a top-of-hour pattern.
+ *
+ * @throws IOException if IOException during test.
+ */
+ public void testTopOfHour() throws IOException {
+ test3Param("'.'yyyy-MM-dd-HH", "output/drfa_topOfHour.log");
+ }
+
+ /**
+ * Creates an appender with a top-of-day pattern.
+ *
+ * @throws IOException if IOException during test.
+ */
+ public void testTopOfMinute() throws IOException {
+ test3Param("'.'yyyy-MM-dd-HH-mm", "output/drfa_topOfMinute.log");
+ }
+
+ /**
+ * Attempts to rollOver with no date pattern set.
+ *
+ * @throws IOException if IOException during test.
+ */
+ public void testRolloverNoPattern() throws IOException {
+ Layout layout = new SimpleLayout();
+ DailyRollingFileAppender appender =
+ new DailyRollingFileAppender(layout, "output/drfa_nopattern.log", null);
+
+ VectorErrorHandler errorHandler = new VectorErrorHandler();
+ appender.setErrorHandler(errorHandler);
+ appender.rollOver();
+ assertEquals(1, errorHandler.size());
+ assertEquals("Missing DatePattern option in rollOver().",
+ errorHandler.getMessage(0));
+ }
+
+ /**
+ * Tests rollOver with a minute periodicity.
+ *
+ * @throws IOException
+ * @throws InterruptedException
+ */
+ public void testMinuteRollover() throws IOException, InterruptedException {
+ Layout layout = new SimpleLayout();
+ String filename = "output/drfa_minuteRollover.log";
+ String pattern = "'.'yyyy-MM-dd-HH-mm";
+
+ DailyRollingFileAppender appender =
+ new DailyRollingFileAppender(layout,
+ filename,
+ pattern);
+ Logger root = Logger.getRootLogger();
+ root.addAppender(appender);
+ File firstFile =
+ new File(filename + new SimpleDateFormat(pattern).format(new Date()));
+ root.info("Hello, World");
+ //
+ // create a file by that name so it has to be deleted
+ // on rollover
+ firstFile.createNewFile();
+ assertTrue(firstFile.exists());
+ assertEquals(0, firstFile.length());
+
+ Calendar cal = Calendar.getInstance();
+ long now = cal.getTime().getTime();
+ cal.set(Calendar.SECOND, 3);
+ cal.set(Calendar.MILLISECOND, 0);
+ cal.add(Calendar.MINUTE, 1);
+ long until = cal.getTime().getTime();
+ Thread.sleep(until - now);
+ root.info("Hello, World");
+ assertTrue(firstFile.exists());
+ assertTrue(firstFile.length() > 0);
+
+ }
+
+ /**
+ * Naive append method to combine rollover fragments.
+ * @param combined stream to which source is appended.
+ * @param source stream containing bytes to append.
+ * @param buf byte array to use in transfer.
+ * @throws IOException if io error during operation.
+ */
+ private static void append(final FileOutputStream combined,
+ final FileInputStream source,
+ final byte[] buf) throws IOException {
+ int count1 = source.read(buf);
+ if (count1 > 0) {
+ combined.write(buf, 0, count1);
+ }
+ source.close();
+ }
+
+ /**
+ * Tests rollOver when log file is unabled to be renamed.
+ * See bug 43374.
+ *
+ * @throws IOException if io error.
+ * @throws InterruptedException if test interrupted while waiting for the start of the next minute.
+ */
+ public void testBlockedRollover() throws IOException, InterruptedException {
+ Layout layout = new SimpleLayout();
+ String filename = "output/drfa_blockedRollover.log";
+ String pattern = "'.'yyyy-MM-dd-HH-mm";
+
+
+ Date start = new Date();
+ DailyRollingFileAppender appender =
+ new DailyRollingFileAppender(layout,
+ filename,
+ pattern);
+ appender.setAppend(false);
+ Logger root = Logger.getRootLogger();
+ root.addAppender(appender);
+ //
+ // open next two anticipated rollover file names
+ //
+ File block1 = new File(filename + new SimpleDateFormat(pattern).format(start));
+ File block2 = new File(filename + new SimpleDateFormat(pattern).format(
+ new Date(start.getTime() + 60000)));
+ FileOutputStream os1 = new FileOutputStream(block1);
+ FileOutputStream os2 = new FileOutputStream(block2);
+ root.info("Prior to rollover");
+ //
+ // sleep until three seconds into next minute
+ //
+ Thread.sleep(63000 - (start.getTime() % 60000));
+ //
+ // should trigger failed rollover
+ //
+ root.info("Rollover attempt while blocked");
+ os1.close();
+ os2.close();
+ root.info("Message after block removed");
+ appender.close();
+ //
+ // combine base file and potential rollovers
+ // since rollover may or may not have been blocked
+ // depending on platform.
+ //
+ String combinedFilename = "output/drfa_blockedRollover.combined";
+ FileOutputStream combined = new FileOutputStream(combinedFilename);
+ byte[] buf = new byte[500];
+ append(combined, new FileInputStream(block1), buf);
+ append(combined, new FileInputStream(block2), buf);
+ append(combined, new FileInputStream(filename), buf);
+ combined.close();
+ assertTrue(Compare.compare(combinedFilename,
+ "target/test-classes/witness/drfa_blockedRollover.log"));
+ }
+
+ /** Check that the computed rollover period for a pattern containing a week as the finest unit is set to be
+ * a week. Due to a locale mismatch this was incorrect in non-English locales. See bug 40888.
+ *
+ */
+ public void testWeeklyRollover() {
+ DailyRollingFileAppender drfa = new DailyRollingFileAppender();
+ drfa.setDatePattern("'.'yyyy-ww");
+ int checkPeriod = drfa.computeCheckPeriod();
+ assertEquals(DailyRollingFileAppender.TOP_OF_WEEK, checkPeriod);
+ }
+
+
+}
Propchange: logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/DRFATestCase.java
------------------------------------------------------------------------------
svn:eol-style = native
Copied: logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/DefaultThrowableRendererTest.java (from r1345516, logging/log4j/branches/log4j12-bz53299/tests/src/java/org/apache/log4j/DefaultThrowableRendererTest.java)
URL: http://svn.apache.org/viewvc/logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/DefaultThrowableRendererTest.java?p2=logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/DefaultThrowableRendererTest.java&p1=logging/log4j/branches/log4j12-bz53299/tests/src/java/org/apache/log4j/DefaultThrowableRendererTest.java&r1=1345516&r2=1345524&rev=1345524&view=diff
==============================================================================
(empty)
Propchange: logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/DefaultThrowableRendererTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Copied: logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/EnhancedMyPatternLayout.java (from r1345516, logging/log4j/branches/log4j12-bz53299/tests/src/java/org/apache/log4j/EnhancedMyPatternLayout.java)
URL: http://svn.apache.org/viewvc/logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/EnhancedMyPatternLayout.java?p2=logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/EnhancedMyPatternLayout.java&p1=logging/log4j/branches/log4j12-bz53299/tests/src/java/org/apache/log4j/EnhancedMyPatternLayout.java&r1=1345516&r2=1345524&rev=1345524&view=diff
==============================================================================
(empty)
Propchange: logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/EnhancedMyPatternLayout.java
------------------------------------------------------------------------------
svn:eol-style = native
Copied: logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/EnhancedPatternLayoutTest.java (from r1345516, logging/log4j/branches/log4j12-bz53299/tests/src/java/org/apache/log4j/EnhancedPatternLayoutTest.java)
URL: http://svn.apache.org/viewvc/logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/EnhancedPatternLayoutTest.java?p2=logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/EnhancedPatternLayoutTest.java&p1=logging/log4j/branches/log4j12-bz53299/tests/src/java/org/apache/log4j/EnhancedPatternLayoutTest.java&r1=1345516&r2=1345524&rev=1345524&view=diff
==============================================================================
(empty)
Propchange: logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/EnhancedPatternLayoutTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/EnhancedPatternLayoutTest.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Added: logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/EnhancedPatternLayoutTestCase.java
URL: http://svn.apache.org/viewvc/logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/EnhancedPatternLayoutTestCase.java?rev=1345524&view=auto
==============================================================================
--- logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/EnhancedPatternLayoutTestCase.java (added)
+++ logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/EnhancedPatternLayoutTestCase.java Sat Jun 2 15:35:46 2012
@@ -0,0 +1,591 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.log4j;
+
+import junit.framework.TestCase;
+import org.apache.log4j.util.AbsoluteDateAndTimeFilter;
+import org.apache.log4j.util.AbsoluteTimeFilter;
+import org.apache.log4j.util.Compare;
+import org.apache.log4j.util.ControlFilter;
+import org.apache.log4j.util.Filter;
+import org.apache.log4j.util.ISO8601Filter;
+import org.apache.log4j.util.EnhancedJunitTestRunnerFilter;
+import org.apache.log4j.util.EnhancedLineNumberFilter;
+import org.apache.log4j.util.RelativeTimeFilter;
+import org.apache.log4j.util.SunReflectFilter;
+import org.apache.log4j.util.Transformer;
+import org.apache.log4j.MDCOrderFilter;
+import org.apache.log4j.spi.ThrowableInformation;
+
+import java.text.ParsePosition;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.TimeZone;
+import java.io.*;
+
+
+public class EnhancedPatternLayoutTestCase extends TestCase {
+ static final String FILE_PREFIX = "target/test-classes/";
+
+ static String TEMP = "output/temp";
+ static String FILTERED = "output/filtered";
+ static String EXCEPTION1 = "java.lang.Exception: Just testing";
+ static String EXCEPTION2 = "\\s*at .*\\(.*\\)";
+ static String EXCEPTION3 = "\\s*at .*\\((Native Method|Unknown Source)\\)";
+ static String EXCEPTION4 = "\\s*at .*\\(.*Compiled Code\\)";
+
+ static String PAT0 =
+ "\\[main]\\ (DEBUG|INFO|WARN|ERROR|FATAL) .* - Message \\d{1,2}";
+ static String PAT1 = Filter.ISO8601_PAT + " " + PAT0;
+ static String PAT2 = Filter.ABSOLUTE_DATE_AND_TIME_PAT + " " + PAT0;
+ static String PAT3 = Filter.ABSOLUTE_TIME_PAT + " " + PAT0;
+ static String PAT4 = Filter.RELATIVE_TIME_PAT + " " + PAT0;
+ static String PAT5 =
+ "\\[main]\\ (DEBUG|INFO|WARN|ERROR|FATAL) .* : Message \\d{1,2}";
+ static String PAT6 =
+ "\\[main]\\ (DEBUG|INFO |WARN |ERROR|FATAL) org.apache.log4j.EnhancedPatternLayoutTestCase.common\\(EnhancedPatternLayoutTestCase.java(:\\d{1,4})?\\): Message \\d{1,2}";
+ static String PAT11a =
+ "^(DEBUG|INFO |WARN |ERROR|FATAL) \\[main]\\ log4j.EnhancedPatternLayoutTest: Message \\d{1,2}";
+ static String PAT11b =
+ "^(DEBUG|INFO |WARN |ERROR|FATAL) \\[main]\\ root: Message \\d{1,2}";
+ static String PAT12 =
+ "^\\[main]\\ (DEBUG|INFO |WARN |ERROR|FATAL) "
+ + "org.apache.log4j.EnhancedPatternLayoutTestCase.common\\(EnhancedPatternLayoutTestCase.java:\\d{3}\\): "
+ + "Message \\d{1,2}";
+ static String PAT13 =
+ "^\\[main]\\ (DEBUG|INFO |WARN |ERROR|FATAL) "
+ + "apache.log4j.EnhancedPatternLayoutTestCase.common\\(EnhancedPatternLayoutTestCase.java:\\d{3}\\): "
+ + "Message \\d{1,2}";
+ static String PAT14 =
+ "^(TRACE|DEBUG| INFO| WARN|ERROR|FATAL)\\ \\d{1,2}\\ *- Message \\d{1,2}";
+ static String PAT_MDC_1 = "";
+ Logger root;
+ Logger logger;
+
+
+ public EnhancedPatternLayoutTestCase(final String name) {
+ super(name);
+ }
+
+ public void setUp() {
+ root = Logger.getRootLogger();
+ logger = Logger.getLogger(EnhancedPatternLayoutTest.class);
+ }
+
+ public void tearDown() {
+ root.getLoggerRepository().resetConfiguration();
+ }
+
+ /**
+ * Configures log4j from a properties file resource in class loader path.
+ * @param fileName resource name, only last element is significant.
+ * @throws IOException if resource not found or error reading resource.
+ */
+ private static void configure(final String fileName) throws IOException {
+ PropertyConfigurator.configure(fileName);
+ }
+
+ /**
+ * Compares actual and expected files.
+ * @param actual file name for file generated by test
+ * @param expected resource name containing expected output
+ * @return true if files are the same after adjustments
+ * @throws IOException if IO error during comparison.
+ */
+ private static boolean compare(final String actual,
+ final String expected) throws IOException {
+ return Compare.compare(actual, expected);
+ }
+
+ public void test1() throws Exception {
+ configure(FILE_PREFIX + "input/pattern/enhancedPatternLayout1.properties");
+ common();
+ Transformer.transform(
+ TEMP, FILTERED,
+ new Filter[] {
+ new EnhancedLineNumberFilter(), new SunReflectFilter(),
+ new EnhancedJunitTestRunnerFilter()
+ });
+ assertTrue(compare(FILTERED, FILE_PREFIX + "witness/pattern/enhancedPatternLayout.1"));
+ }
+
+ public void test2() throws Exception {
+ configure(FILE_PREFIX + "input/pattern/enhancedPatternLayout2.properties");
+ common();
+
+ ControlFilter cf1 =
+ new ControlFilter(
+ new String[] { PAT1, EXCEPTION1, EXCEPTION2, EXCEPTION3 });
+ Transformer.transform(
+ TEMP, FILTERED,
+ new Filter[] {
+ cf1, new EnhancedLineNumberFilter(), new ISO8601Filter(),
+ new SunReflectFilter(), new EnhancedJunitTestRunnerFilter()
+ });
+ assertTrue(compare(FILTERED, FILE_PREFIX + "witness/pattern/enhancedPatternLayout.2"));
+ }
+
+ public void test3() throws Exception {
+ configure(FILE_PREFIX + "input/pattern/enhancedPatternLayout3.properties");
+ common();
+
+ ControlFilter cf1 =
+ new ControlFilter(
+ new String[] { PAT1, EXCEPTION1, EXCEPTION2, EXCEPTION3 });
+ Transformer.transform(
+ TEMP, FILTERED,
+ new Filter[] {
+ cf1, new EnhancedLineNumberFilter(), new ISO8601Filter(),
+ new SunReflectFilter(), new EnhancedJunitTestRunnerFilter()
+ });
+ assertTrue(compare(FILTERED, FILE_PREFIX + "witness/pattern/enhancedPatternLayout.3"));
+ }
+
+ // Output format:
+ // 06 avr. 2002 18:30:58,937 [main] DEBUG atternLayoutTest - Message 0
+ public void test4() throws Exception {
+ configure(FILE_PREFIX + "input/pattern/enhancedPatternLayout4.properties");
+ common();
+
+ ControlFilter cf1 =
+ new ControlFilter(
+ new String[] { PAT2, EXCEPTION1, EXCEPTION2, EXCEPTION3 });
+ Transformer.transform(
+ TEMP, FILTERED,
+ new Filter[] {
+ cf1, new EnhancedLineNumberFilter(), new AbsoluteDateAndTimeFilter(),
+ new SunReflectFilter(), new EnhancedJunitTestRunnerFilter()
+ });
+ assertTrue(compare(FILTERED, FILE_PREFIX + "witness/pattern/enhancedPatternLayout.4"));
+ }
+
+ public void test5() throws Exception {
+ configure(FILE_PREFIX + "input/pattern/enhancedPatternLayout5.properties");
+ common();
+
+ ControlFilter cf1 =
+ new ControlFilter(
+ new String[] { PAT2, EXCEPTION1, EXCEPTION2, EXCEPTION3 });
+ Transformer.transform(
+ TEMP, FILTERED,
+ new Filter[] {
+ cf1, new EnhancedLineNumberFilter(), new AbsoluteDateAndTimeFilter(),
+ new SunReflectFilter(), new EnhancedJunitTestRunnerFilter()
+ });
+ assertTrue(compare(FILTERED, FILE_PREFIX + "witness/pattern/enhancedPatternLayout.5"));
+ }
+
+ // 18:54:19,201 [main] DEBUG atternLayoutTest - Message 0
+ public void test6() throws Exception {
+ configure(FILE_PREFIX + "input/pattern/enhancedPatternLayout6.properties");
+ common();
+
+ ControlFilter cf1 =
+ new ControlFilter(
+ new String[] { PAT3, EXCEPTION1, EXCEPTION2, EXCEPTION3 });
+ Transformer.transform(
+ TEMP, FILTERED,
+ new Filter[] {
+ cf1, new EnhancedLineNumberFilter(), new AbsoluteTimeFilter(),
+ new SunReflectFilter(), new EnhancedJunitTestRunnerFilter()
+ });
+ assertTrue(compare(FILTERED, FILE_PREFIX + "witness/pattern/enhancedPatternLayout.6"));
+ }
+
+ public void test7() throws Exception {
+ configure(FILE_PREFIX + "input/pattern/enhancedPatternLayout7.properties");
+ common();
+
+ ControlFilter cf1 =
+ new ControlFilter(
+ new String[] { PAT3, EXCEPTION1, EXCEPTION2, EXCEPTION3 });
+ Transformer.transform(
+ TEMP, FILTERED,
+ new Filter[] {
+ cf1, new EnhancedLineNumberFilter(), new AbsoluteTimeFilter(),
+ new SunReflectFilter(), new EnhancedJunitTestRunnerFilter()
+ });
+ assertTrue(compare(FILTERED, FILE_PREFIX + "witness/pattern/enhancedPatternLayout.7"));
+ }
+
+ public void test8() throws Exception {
+ configure(FILE_PREFIX + "input/pattern/enhancedPatternLayout8.properties");
+ common();
+
+ ControlFilter cf1 =
+ new ControlFilter(
+ new String[] { PAT4, EXCEPTION1, EXCEPTION2, EXCEPTION3 });
+ Transformer.transform(
+ TEMP, FILTERED,
+ new Filter[] {
+ cf1, new EnhancedLineNumberFilter(), new RelativeTimeFilter(),
+ new SunReflectFilter(), new EnhancedJunitTestRunnerFilter()
+ });
+ assertTrue(compare(FILTERED, FILE_PREFIX + "witness/pattern/enhancedPatternLayout.8"));
+ }
+
+ public void test9() throws Exception {
+ configure(FILE_PREFIX + "input/pattern/enhancedPatternLayout9.properties");
+ common();
+
+ ControlFilter cf1 =
+ new ControlFilter(
+ new String[] { PAT5, EXCEPTION1, EXCEPTION2, EXCEPTION3 });
+ Transformer.transform(
+ TEMP, FILTERED,
+ new Filter[] {
+ cf1, new EnhancedLineNumberFilter(), new SunReflectFilter(),
+ new EnhancedJunitTestRunnerFilter()
+ });
+ assertTrue(compare(FILTERED, FILE_PREFIX + "witness/pattern/enhancedPatternLayout.9"));
+ }
+
+ public void test10() throws Exception {
+ configure(FILE_PREFIX + "input/pattern/enhancedPatternLayout10.properties");
+ common();
+
+ ControlFilter cf1 =
+ new ControlFilter(
+ new String[] { PAT6, EXCEPTION1, EXCEPTION2, EXCEPTION3 });
+ Transformer.transform(
+ TEMP, FILTERED,
+ new Filter[] {
+ cf1, new EnhancedLineNumberFilter(), new SunReflectFilter(),
+ new EnhancedJunitTestRunnerFilter()
+ });
+ assertTrue(compare(FILTERED, FILE_PREFIX + "witness/pattern/enhancedPatternLayout.10"));
+ }
+
+ public void test11() throws Exception {
+ configure(FILE_PREFIX + "input/pattern/enhancedPatternLayout11.properties");
+ common();
+
+ ControlFilter cf1 =
+ new ControlFilter(
+ new String[] { PAT11a, PAT11b, EXCEPTION1, EXCEPTION2, EXCEPTION3 });
+ Transformer.transform(
+ TEMP, FILTERED,
+ new Filter[] {
+ cf1, new EnhancedLineNumberFilter(), new SunReflectFilter(),
+ new EnhancedJunitTestRunnerFilter()
+ });
+ assertTrue(compare(FILTERED, FILE_PREFIX + "witness/pattern/enhancedPatternLayout.11"));
+ }
+
+ public void test12() throws Exception {
+ configure(FILE_PREFIX + "input/pattern/enhancedPatternLayout12.properties");
+ common();
+
+ ControlFilter cf1 =
+ new ControlFilter(
+ new String[] { PAT12, EXCEPTION1, EXCEPTION2, EXCEPTION3 });
+ Transformer.transform(
+ TEMP, FILTERED,
+ new Filter[] {
+ cf1, new EnhancedLineNumberFilter(), new SunReflectFilter(),
+ new EnhancedJunitTestRunnerFilter()
+ });
+ assertTrue(compare(FILTERED, FILE_PREFIX + "witness/pattern/enhancedPatternLayout.12"));
+ }
+
+ public void test13() throws Exception {
+ configure(FILE_PREFIX + "input/pattern/enhancedPatternLayout13.properties");
+ common();
+
+ ControlFilter cf1 =
+ new ControlFilter(
+ new String[] { PAT13, EXCEPTION1, EXCEPTION2, EXCEPTION3 });
+ Transformer.transform(
+ TEMP, FILTERED,
+ new Filter[] {
+ cf1, new EnhancedLineNumberFilter(), new SunReflectFilter(),
+ new EnhancedJunitTestRunnerFilter()
+ });
+ assertTrue(compare(FILTERED, FILE_PREFIX + "witness/pattern/enhancedPatternLayout.13"));
+ }
+
+ /**
+ * Test of class abbreviation.
+ *
+ * @throws Exception
+ */
+ public void test14() throws Exception {
+ configure(FILE_PREFIX + "input/pattern/enhancedPatternLayout14.properties");
+ common();
+
+ Transformer.transform(
+ TEMP, FILTERED,
+ new Filter[] {
+ new EnhancedLineNumberFilter(), new SunReflectFilter(),
+ new EnhancedJunitTestRunnerFilter()
+ });
+ assertTrue(compare(FILTERED, FILE_PREFIX + "witness/pattern/enhancedPatternLayout.14"));
+ }
+
+
+ private static void clearMDC() throws Exception {
+ java.util.Hashtable context = MDC.getContext();
+ if (context != null) {
+ context.clear();
+ }
+ }
+
+ public void testMDC1() throws Exception {
+ configure(FILE_PREFIX + "input/pattern/enhancedPatternLayout.mdc.1.properties");
+ clearMDC();
+ MDC.put("key1", "va11");
+ MDC.put("key2", "va12");
+ logger.debug("Hello World");
+ MDC.remove("key1");
+ MDC.remove("key2");
+
+ Transformer.transform(
+ TEMP, FILTERED,
+ new Filter[] {
+ new EnhancedLineNumberFilter(), new SunReflectFilter(),
+ new EnhancedJunitTestRunnerFilter(),
+ new MDCOrderFilter()
+ });
+ assertTrue(compare(FILTERED, FILE_PREFIX + "witness/pattern/enhancedPatternLayout.mdc.1"));
+ }
+ /**
+ * Tests log4j 1.2 style extension of EnhancedPatternLayout.
+ * Was test14 in log4j 1.2.
+ * @throws Exception
+ */
+ public void test15() throws Exception {
+ configure(FILE_PREFIX + "input/pattern/enhancedPatternLayout15.properties");
+ common();
+ ControlFilter cf1 = new ControlFilter(new String[]{PAT14, EXCEPTION1,
+ EXCEPTION2, EXCEPTION3, EXCEPTION4});
+ Transformer.transform(
+ TEMP, FILTERED,
+ new Filter[] {
+ cf1, new EnhancedLineNumberFilter(), new SunReflectFilter(),
+ new EnhancedJunitTestRunnerFilter()
+ });
+ assertTrue(compare(FILTERED, FILE_PREFIX + "witness/pattern/enhancedPatternLayout.15"));
+ }
+ /**
+ * Tests explicit UTC time zone in pattern.
+ * @throws Exception
+ */
+ public void test16() throws Exception {
+ final long start = new Date().getTime();
+ configure(FILE_PREFIX + "input/pattern/enhancedPatternLayout16.properties");
+ common();
+ final long end = new Date().getTime();
+ FileReader reader = new FileReader("output/patternLayout16.log");
+ char chars[] = new char[50];
+ reader.read(chars, 0, chars.length);
+ reader.close();
+ SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ format.setTimeZone(TimeZone.getTimeZone("GMT+0"));
+ String utcStr = new String(chars, 0, 19);
+ Date utcDate = format.parse(utcStr, new ParsePosition(0));
+ assertTrue(utcDate.getTime() >= start - 1000 && utcDate.getTime() < end + 1000);
+ String cstStr = new String(chars, 21, 19);
+ format.setTimeZone(TimeZone.getTimeZone("GMT-6"));
+ Date cstDate = format.parse(cstStr, new ParsePosition(0));
+ assertFalse(cstStr.equals(utcStr));
+ assertTrue(cstDate.getTime() >= start - 1000 && cstDate.getTime() < end + 1000);
+ }
+
+ void common() {
+ int i = -1;
+
+ logger.debug("Message " + ++i);
+ root.debug("Message " + i);
+
+ logger.info("Message " + ++i);
+ root.info("Message " + i);
+
+ logger.warn("Message " + ++i);
+ root.warn("Message " + i);
+
+ logger.error("Message " + ++i);
+ root.error("Message " + i);
+
+ logger.log(Level.FATAL, "Message " + ++i);
+ root.log(Level.FATAL, "Message " + i);
+
+ Exception e = new Exception("Just testing");
+
+ logger.debug("Message " + ++i, e);
+ logger.info("Message " + ++i, e);
+ logger.warn("Message " + ++i, e);
+ logger.error("Message " + ++i, e);
+ logger.log(Level.FATAL, "Message " + ++i, e);
+ }
+
+ /**
+ Test case for MDC conversion pattern. */
+ public void testMDC2() throws Exception {
+ String OUTPUT_FILE = "output/patternLayout.mdc.2";
+ String WITNESS_FILE = FILE_PREFIX + "witness/pattern/enhancedPatternLayout.mdc.2";
+
+ String mdcMsgPattern1 = "%m : %X%n";
+ String mdcMsgPattern2 = "%m : %X{key1}%n";
+ String mdcMsgPattern3 = "%m : %X{key2}%n";
+ String mdcMsgPattern4 = "%m : %X{key3}%n";
+ String mdcMsgPattern5 = "%m : %X{key1},%X{key2},%X{key3}%n";
+
+ // set up appender
+ EnhancedPatternLayout layout = new EnhancedPatternLayout("%m%n");
+ Appender appender = new FileAppender(layout, OUTPUT_FILE, false);
+
+ // set appender on root and set level to debug
+ root.addAppender(appender);
+ root.setLevel(Level.DEBUG);
+
+ clearMDC();
+ // output starting message
+ root.debug("starting mdc pattern test");
+
+ layout.setConversionPattern(mdcMsgPattern1);
+ layout.activateOptions();
+ root.debug("empty mdc, no key specified in pattern");
+
+ layout.setConversionPattern(mdcMsgPattern2);
+ layout.activateOptions();
+ root.debug("empty mdc, key1 in pattern");
+
+ layout.setConversionPattern(mdcMsgPattern3);
+ layout.activateOptions();
+ root.debug("empty mdc, key2 in pattern");
+
+ layout.setConversionPattern(mdcMsgPattern4);
+ layout.activateOptions();
+ root.debug("empty mdc, key3 in pattern");
+
+ layout.setConversionPattern(mdcMsgPattern5);
+ layout.activateOptions();
+ root.debug("empty mdc, key1, key2, and key3 in pattern");
+
+ MDC.put("key1", "value1");
+ MDC.put("key2", "value2");
+
+ layout.setConversionPattern(mdcMsgPattern1);
+ layout.activateOptions();
+ root.debug("filled mdc, no key specified in pattern");
+
+ layout.setConversionPattern(mdcMsgPattern2);
+ layout.activateOptions();
+ root.debug("filled mdc, key1 in pattern");
+
+ layout.setConversionPattern(mdcMsgPattern3);
+ layout.activateOptions();
+ root.debug("filled mdc, key2 in pattern");
+
+ layout.setConversionPattern(mdcMsgPattern4);
+ layout.activateOptions();
+ root.debug("filled mdc, key3 in pattern");
+
+ layout.setConversionPattern(mdcMsgPattern5);
+ layout.activateOptions();
+ root.debug("filled mdc, key1, key2, and key3 in pattern");
+
+ MDC.remove("key1");
+ MDC.remove("key2");
+
+ layout.setConversionPattern("%m%n");
+ layout.activateOptions();
+ root.debug("finished mdc pattern test");
+
+
+ Transformer.transform(
+ OUTPUT_FILE, FILTERED,
+ new Filter[] {
+ new EnhancedLineNumberFilter(), new SunReflectFilter(),
+ new EnhancedJunitTestRunnerFilter(),
+ new MDCOrderFilter()
+ });
+
+ assertTrue(compare(FILTERED, WITNESS_FILE));
+ }
+ /**
+ Test case for throwable conversion pattern. */
+ public void testThrowable() throws Exception {
+ String OUTPUT_FILE = "output/patternLayout.throwable";
+ String WITNESS_FILE = FILE_PREFIX + "witness/pattern/enhancedPatternLayout.throwable";
+
+
+ // set up appender
+ EnhancedPatternLayout layout = new EnhancedPatternLayout("%m%n");
+ Appender appender = new FileAppender(layout, OUTPUT_FILE, false);
+
+ // set appender on root and set level to debug
+ root.addAppender(appender);
+ root.setLevel(Level.DEBUG);
+
+ // output starting message
+ root.debug("starting throwable pattern test");
+ Exception ex = new Exception("Test Exception");
+ root.debug("plain pattern, no exception");
+ root.debug("plain pattern, with exception", ex);
+ layout.setConversionPattern("%m%n%throwable");
+ layout.activateOptions();
+ root.debug("%throwable, no exception");
+ root.debug("%throwable, with exception", ex);
+
+ layout.setConversionPattern("%m%n%throwable{short}");
+ layout.activateOptions();
+ root.debug("%throwable{short}, no exception");
+ root.debug("%throwable{short}, with exception", ex);
+
+ layout.setConversionPattern("%m%n%throwable{none}");
+ layout.activateOptions();
+ root.debug("%throwable{none}, no exception");
+ root.debug("%throwable{none}, with exception", ex);
+
+ layout.setConversionPattern("%m%n%throwable{0}");
+ layout.activateOptions();
+ root.debug("%throwable{0}, no exception");
+ root.debug("%throwable{0}, with exception", ex);
+
+ layout.setConversionPattern("%m%n%throwable{1}");
+ layout.activateOptions();
+ root.debug("%throwable{1}, no exception");
+ root.debug("%throwable{1}, with exception", ex);
+
+ layout.setConversionPattern("%m%n%throwable{100}");
+ layout.activateOptions();
+ root.debug("%throwable{100}, no exception");
+ root.debug("%throwable{100}, with exception", ex);
+
+ //
+ // manufacture a pattern to get just the first two lines
+ //
+ String[] trace = new ThrowableInformation(ex).getThrowableStrRep();
+ layout.setConversionPattern("%m%n%throwable{" + (2 - trace.length) + "}");
+ layout.activateOptions();
+ root.debug("%throwable{-n}, no exception");
+ root.debug("%throwable{-n}, with exception", ex);
+
+
+ Transformer.transform(
+ OUTPUT_FILE, FILTERED,
+ new Filter[] {
+ new EnhancedLineNumberFilter(), new SunReflectFilter(),
+ new EnhancedJunitTestRunnerFilter(),
+ new MDCOrderFilter()
+ });
+
+ assertTrue(compare(FILTERED, WITNESS_FILE));
+ }
+}
Propchange: logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/EnhancedPatternLayoutTestCase.java
------------------------------------------------------------------------------
svn:eol-style = native
Copied: logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/EnhancedThrowableRendererTest.java (from r1345516, logging/log4j/branches/log4j12-bz53299/tests/src/java/org/apache/log4j/EnhancedThrowableRendererTest.java)
URL: http://svn.apache.org/viewvc/logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/EnhancedThrowableRendererTest.java?p2=logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/EnhancedThrowableRendererTest.java&p1=logging/log4j/branches/log4j12-bz53299/tests/src/java/org/apache/log4j/EnhancedThrowableRendererTest.java&r1=1345516&r2=1345524&rev=1345524&view=diff
==============================================================================
(empty)
Propchange: logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/EnhancedThrowableRendererTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Copied: logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/FileAppenderTest.java (from r1345516, logging/log4j/branches/log4j12-bz53299/tests/src/java/org/apache/log4j/FileAppenderTest.java)
URL: http://svn.apache.org/viewvc/logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/FileAppenderTest.java?p2=logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/FileAppenderTest.java&p1=logging/log4j/branches/log4j12-bz53299/tests/src/java/org/apache/log4j/FileAppenderTest.java&r1=1345516&r2=1345524&rev=1345524&view=diff
==============================================================================
(empty)
Propchange: logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/FileAppenderTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/FileAppenderTest.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Copied: logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/HTMLLayoutTest.java (from r1345516, logging/log4j/branches/log4j12-bz53299/tests/src/java/org/apache/log4j/HTMLLayoutTest.java)
URL: http://svn.apache.org/viewvc/logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/HTMLLayoutTest.java?p2=logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/HTMLLayoutTest.java&p1=logging/log4j/branches/log4j12-bz53299/tests/src/java/org/apache/log4j/HTMLLayoutTest.java&r1=1345516&r2=1345524&rev=1345524&view=diff
==============================================================================
(empty)
Propchange: logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/HTMLLayoutTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/HierarchyThresholdTestCase.java
URL: http://svn.apache.org/viewvc/logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/HierarchyThresholdTestCase.java?rev=1345524&view=auto
==============================================================================
--- logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/HierarchyThresholdTestCase.java (added)
+++ logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/HierarchyThresholdTestCase.java Sat Jun 2 15:35:46 2012
@@ -0,0 +1,129 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.log4j;
+
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+import junit.framework.Test;
+
+import org.apache.log4j.util.Compare;
+import org.apache.log4j.xml.XLevel;
+
+/**
+ Test the configuration of the hierarchy-wide threshold.
+
+ @author Ceki Gülcü
+*/
+public class HierarchyThresholdTestCase extends TestCase {
+
+ static final String FILE_PREFIX = "target/test-classes";
+ static final String INPUT_DIR = FILE_PREFIX + "/input";
+ static final String WITNESS_DIR = FILE_PREFIX + "/witness";
+
+ static String TEMP = "output/temp";
+ static Logger logger = Logger.getLogger(HierarchyThresholdTestCase.class);
+
+ public HierarchyThresholdTestCase(String name) {
+ super(name);
+ }
+
+ public void setUp() {
+ }
+
+ public void tearDown() {
+ System.out.println("Tearing down test case.");
+ logger.getLoggerRepository().resetConfiguration();
+ }
+
+ public void test1() throws Exception {
+ PropertyConfigurator.configure(INPUT_DIR + "/hierarchyThreshold1.properties");
+ common();
+ assertTrue(Compare.compare(TEMP, WITNESS_DIR + "/hierarchyThreshold.1"));
+ }
+
+ public void test2() throws Exception {
+ PropertyConfigurator.configure(INPUT_DIR + "/hierarchyThreshold2.properties");
+ common();
+ assertTrue(Compare.compare(TEMP, WITNESS_DIR + "/hierarchyThreshold.2"));
+ }
+
+ public void test3() throws Exception {
+ PropertyConfigurator.configure(INPUT_DIR + "/hierarchyThreshold3.properties");
+ common();
+ assertTrue(Compare.compare(TEMP, WITNESS_DIR + "/hierarchyThreshold.3"));
+ }
+
+ public void test4() throws Exception {
+ PropertyConfigurator.configure(INPUT_DIR + "/hierarchyThreshold4.properties");
+ common();
+ assertTrue(Compare.compare(TEMP, WITNESS_DIR + "/hierarchyThreshold.4"));
+ }
+
+ public void test5() throws Exception {
+ PropertyConfigurator.configure(INPUT_DIR + "/hierarchyThreshold5.properties");
+ common();
+ assertTrue(Compare.compare(TEMP, WITNESS_DIR + "/hierarchyThreshold.5"));
+ }
+
+ public void test6() throws Exception {
+ PropertyConfigurator.configure(INPUT_DIR + "/hierarchyThreshold6.properties");
+ common();
+ assertTrue(Compare.compare(TEMP, WITNESS_DIR + "/hierarchyThreshold.6"));
+ }
+
+ public void test7() throws Exception {
+ PropertyConfigurator.configure(INPUT_DIR + "/hierarchyThreshold7.properties");
+ common();
+ assertTrue(Compare.compare(TEMP, WITNESS_DIR + "/hierarchyThreshold.7"));
+ }
+
+ public void test8() throws Exception {
+ PropertyConfigurator.configure(INPUT_DIR + "/hierarchyThreshold8.properties");
+ common();
+ assertTrue(Compare.compare(TEMP, WITNESS_DIR + "/hierarchyThreshold.8"));
+ }
+
+
+ static
+ void common() {
+ String oldThreadName = Thread.currentThread().getName();
+ Thread.currentThread().setName("main");
+
+ logger.log(XLevel.TRACE, "m0");
+ logger.debug("m1");
+ logger.info("m2");
+ logger.warn("m3");
+ logger.error("m4");
+ logger.fatal("m5");
+
+ Thread.currentThread().setName(oldThreadName);
+ }
+
+ public static Test suite() {
+ TestSuite suite = new TestSuite();
+ suite.addTest(new HierarchyThresholdTestCase("test1"));
+ suite.addTest(new HierarchyThresholdTestCase("test2"));
+ suite.addTest(new HierarchyThresholdTestCase("test3"));
+ suite.addTest(new HierarchyThresholdTestCase("test4"));
+ suite.addTest(new HierarchyThresholdTestCase("test5"));
+ suite.addTest(new HierarchyThresholdTestCase("test6"));
+ suite.addTest(new HierarchyThresholdTestCase("test7"));
+ suite.addTest(new HierarchyThresholdTestCase("test8"));
+ return suite;
+ }
+}
Propchange: logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/HierarchyThresholdTestCase.java
------------------------------------------------------------------------------
svn:eol-style = native
Copied: logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/Last.java (from r1345516, logging/log4j/branches/log4j12-bz53299/tests/src/java/org/apache/log4j/Last.java)
URL: http://svn.apache.org/viewvc/logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/Last.java?p2=logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/Last.java&p1=logging/log4j/branches/log4j12-bz53299/tests/src/java/org/apache/log4j/Last.java&r1=1345516&r2=1345524&rev=1345524&view=diff
==============================================================================
(empty)
Propchange: logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/Last.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/Last.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Copied: logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/LayoutTest.java (from r1345516, logging/log4j/branches/log4j12-bz53299/tests/src/java/org/apache/log4j/LayoutTest.java)
URL: http://svn.apache.org/viewvc/logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/LayoutTest.java?p2=logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/LayoutTest.java&p1=logging/log4j/branches/log4j12-bz53299/tests/src/java/org/apache/log4j/LayoutTest.java&r1=1345516&r2=1345524&rev=1345524&view=diff
==============================================================================
(empty)
Propchange: logging/log4j/branches/log4j12-bz53299/core/src/test/java/org/apache/log4j/LayoutTest.java
------------------------------------------------------------------------------
svn:eol-style = native