RAT (Release Audit Tool) results

The following document contains the results of RAT (Release Audit Tool) .

*****************************************************
Summary
-------
Notes: 7
Binaries: 3
Archives: 0
Standards: 192

Apache Licensed: 132
Generated Documents: 0

JavaDocs are generated and so license header is optional
Generated files do not required license headers

60 Unknown Licenses

*******************************

Unapproved licenses:

  src/examples/resources/appender_pdo.properties
  src/examples/resources/appender_mail.properties
  src/examples/resources/cache.properties
  src/examples/resources/appender_file.properties
  src/examples/resources/appender_php.properties
  src/examples/resources/layout_xml.properties
  src/examples/resources/appender_rollingfile.properties
  src/examples/resources/layout_ttcc.properties
  src/examples/resources/appender_syslog.properties
  src/examples/resources/appender_echo.properties
  src/examples/resources/layout_html.properties
  src/examples/resources/filter_stringmatch.xml
  src/examples/resources/appender_null.properties
  src/examples/resources/renderer_default.properties
  src/examples/resources/filter_denyall.xml
  src/examples/resources/appender_socket_server.properties
  src/examples/resources/configurator_php.php
  src/examples/resources/mdc.properties
  src/examples/resources/appender_socket.properties
  src/examples/resources/appender_dailyfile.properties
  src/examples/resources/appender_console.properties
  src/examples/resources/renderer_map.properties
  src/examples/resources/appender_mailevent.properties
  src/examples/resources/configurator_xml.xml
  src/examples/resources/filter_levelmatch.xml
  src/examples/resources/layout_pattern.properties
  src/examples/resources/ndc.properties
  src/examples/resources/filter_levelrange.xml
  src/examples/resources/layout_simple.properties
  src/examples/php/layout_simple.php
  src/examples/php/appender_mailevent.php
  src/examples/php/layout_xml.php
  src/examples/php/mdc.php
  src/examples/php/appender_dailyfile.php
  src/examples/php/filter_levelmatch.php
  src/examples/php/appender_socket_server.php
  src/examples/php/configurator_xml.php
  src/examples/php/configurator_basic.php
  src/examples/php/appender_php.php
  src/examples/php/appender_syslog.php
  src/examples/php/appender_mail.php
  src/examples/php/filter_denyall.php
  src/examples/php/renderer_map.php
  src/examples/php/renderer_default.php
  src/examples/php/ndc.php
  src/examples/php/appender_echo.php
  src/examples/php/filter_levelrange.php
  src/examples/php/configurator_php.php
  src/examples/php/appender_file.php
  src/examples/php/layout_html.php
  src/examples/php/appender_socket.php
  src/examples/php/filter_stringmatch.php
  src/examples/php/cache.php
  src/examples/php/simple.php
  src/examples/php/appender_rollingfile.php
  src/examples/php/layout_ttcc.php
  src/examples/php/appender_console.php
  src/examples/php/appender_null.php
  src/examples/php/layout_pattern.php
  src/examples/php/appender_pdo.php

*******************************

Archives (+ indicates readable, $ unreadable): 

 
*****************************************************
  Files with Apache License headers will be marked AL
  Binary files (which do not require AL headers) will be marked B
  Compressed archives will be marked A
  Notices, licenses etc will be marked N
  AL    src/assembly/bin.xml
  AL    src/changes/changes.xml
  AL    src/main/php/configurators/LoggerConfiguratorBasic.php
  AL    src/main/php/configurators/LoggerConfiguratorXml.php
  AL    src/main/php/configurators/LoggerConfiguratorIni.php
  AL    src/main/php/configurators/LoggerConfiguratorPhp.php
  AL    src/main/php/LoggerException.php
  AL    src/main/php/helpers/LoggerMDCPatternConverter.php
  AL    src/main/php/helpers/LoggerDatePatternConverter.php
  AL    src/main/php/helpers/LoggerPatternParser.php
  AL    src/main/php/helpers/LoggerPatternConverter.php
  AL    src/main/php/helpers/LoggerCategoryPatternConverter.php
  AL    src/main/php/helpers/LoggerBasicPatternConverter.php
  AL    src/main/php/helpers/LoggerClassNamePatternConverter.php
  AL    src/main/php/helpers/LoggerLiteralPatternConverter.php
  AL    src/main/php/helpers/LoggerNamedPatternConverter.php
  AL    src/main/php/helpers/LoggerOptionConverter.php
  AL    src/main/php/helpers/LoggerFormattingInfo.php
  AL    src/main/php/helpers/LoggerLocationPatternConverter.php
  AL    src/main/php/LoggerLoggingEvent.php
  AL    src/main/php/LoggerLayout.php
  AL    src/main/php/LoggerNDC.php
  AL    src/main/php/LoggerRoot.php
  AL    src/main/php/filters/LoggerFilterDenyAll.php
  AL    src/main/php/filters/LoggerFilterStringMatch.php
  AL    src/main/php/filters/LoggerFilterLevelRange.php
  AL    src/main/php/filters/LoggerFilterLevelMatch.php
  AL    src/main/php/LoggerLevel.php
  AL    src/main/php/LoggerHierarchy.php
  AL    src/main/php/LoggerMDC.php
  AL    src/main/php/renderers/LoggerRendererDefault.php
  AL    src/main/php/renderers/LoggerRendererObject.php
  AL    src/main/php/renderers/LoggerRendererMap.php
  AL    src/main/php/LoggerAppender.php
  AL    src/main/php/appenders/LoggerAppenderDailyFile.php
  AL    src/main/php/appenders/LoggerAppenderPhp.php
  AL    src/main/php/appenders/LoggerAppenderSyslog.php
  AL    src/main/php/appenders/LoggerAppenderMail.php
  AL    src/main/php/appenders/LoggerAppenderAdodb.php
  AL    src/main/php/appenders/LoggerAppenderPDO.php
  AL    src/main/php/appenders/LoggerAppenderSocket.php
  AL    src/main/php/appenders/LoggerAppenderEcho.php
  AL    src/main/php/appenders/LoggerAppenderFile.php
  AL    src/main/php/appenders/LoggerAppenderMailEvent.php
  AL    src/main/php/appenders/LoggerAppenderConsole.php
  AL    src/main/php/appenders/LoggerAppenderRollingFile.php
  AL    src/main/php/appenders/LoggerAppenderNull.php
  AL    src/main/php/Logger.php
  AL    src/main/php/xml/log4php.dtd
  AL    src/main/php/LoggerAppenderPool.php
  AL    src/main/php/LoggerLocationInfo.php
  AL    src/main/php/LoggerReflectionUtils.php
  AL    src/main/php/layouts/LoggerLayoutSimple.php
  AL    src/main/php/layouts/LoggerLayoutHtml.php
  AL    src/main/php/layouts/LoggerLayoutTTCC.php
  AL    src/main/php/layouts/LoggerLayoutPattern.php
  AL    src/main/php/layouts/LoggerLayoutXml.php
  AL    src/main/php/LoggerFilter.php
  AL    src/main/php/LoggerConfigurator.php
 !????? src/examples/resources/appender_pdo.properties
 !????? src/examples/resources/appender_mail.properties
 !????? src/examples/resources/cache.properties
 !????? src/examples/resources/appender_file.properties
 !????? src/examples/resources/appender_php.properties
 !????? src/examples/resources/layout_xml.properties
 !????? src/examples/resources/appender_rollingfile.properties
 !????? src/examples/resources/layout_ttcc.properties
 !????? src/examples/resources/appender_syslog.properties
 !????? src/examples/resources/appender_echo.properties
 !????? src/examples/resources/layout_html.properties
 !????? src/examples/resources/filter_stringmatch.xml
 !????? src/examples/resources/appender_null.properties
 !????? src/examples/resources/renderer_default.properties
 !????? src/examples/resources/filter_denyall.xml
 !????? src/examples/resources/appender_socket_server.properties
 !????? src/examples/resources/configurator_php.php
 !????? src/examples/resources/mdc.properties
 !????? src/examples/resources/appender_socket.properties
 !????? src/examples/resources/appender_dailyfile.properties
 !????? src/examples/resources/appender_console.properties
 !????? src/examples/resources/renderer_map.properties
 !????? src/examples/resources/appender_mailevent.properties
 !????? src/examples/resources/configurator_xml.xml
 !????? src/examples/resources/filter_levelmatch.xml
 !????? src/examples/resources/layout_pattern.properties
 !????? src/examples/resources/ndc.properties
 !????? src/examples/resources/filter_levelrange.xml
 !????? src/examples/resources/layout_simple.properties
 !????? src/examples/php/layout_simple.php
 !????? src/examples/php/appender_mailevent.php
 !????? src/examples/php/layout_xml.php
 !????? src/examples/php/mdc.php
 !????? src/examples/php/appender_dailyfile.php
 !????? src/examples/php/filter_levelmatch.php
 !????? src/examples/php/appender_socket_server.php
 !????? src/examples/php/configurator_xml.php
 !????? src/examples/php/configurator_basic.php
 !????? src/examples/php/appender_php.php
 !????? src/examples/php/appender_syslog.php
 !????? src/examples/php/appender_mail.php
 !????? src/examples/php/filter_denyall.php
 !????? src/examples/php/renderer_map.php
 !????? src/examples/php/renderer_default.php
 !????? src/examples/php/ndc.php
 !????? src/examples/php/appender_echo.php
 !????? src/examples/php/filter_levelrange.php
 !????? src/examples/php/configurator_php.php
 !????? src/examples/php/appender_file.php
 !????? src/examples/php/layout_html.php
 !????? src/examples/php/appender_socket.php
 !????? src/examples/php/filter_stringmatch.php
 !????? src/examples/php/cache.php
 !????? src/examples/php/simple.php
 !????? src/examples/php/appender_rollingfile.php
 !????? src/examples/php/layout_ttcc.php
 !????? src/examples/php/appender_console.php
 !????? src/examples/php/appender_null.php
 !????? src/examples/php/layout_pattern.php
 !????? src/examples/php/appender_pdo.php
  N     src/examples/README.LICENSE
  AL    src/site/site.xml
  AL    src/site/resources/css/site.css
  B     src/site/resources/images/logo.jpg
  B     src/site/resources/images/ls-logo.jpg
  B     src/site/resources/images/apache-incubator-logo.png
  AL    src/site/apt/contributingpatches.apt
  AL    src/site/apt/upgrading.apt
  AL    src/site/apt/index.apt
  AL    src/site/apt/download.apt
  AL    src/site/apt/volunteering.apt
  AL    src/site/apt/docs/appender-threshold.apt
  AL    src/site/apt/docs/introduction.apt
  AL    src/site/apt/docs/appenders.apt
  AL    src/site/apt/docs/appender-filter.apt
  AL    src/site/apt/docs/appender-layout.apt
  AL    src/site/apt/docs/performance.apt
  AL    src/site/apt/docs/renderer.apt
  AL    src/site/apt/docs/configuration.apt
  AL    src/site/apt/install.apt
  AL    src/site/apt/showcase.apt
  AL    src/site/apt/usage.apt
  AL    src/site/apt/roadmap.apt
  AL    src/site/apt/quickstart.apt
  AL    src/test/config/phpunit_to_surefire.xslt
  AL    src/test/php/configurators/LoggerConfiguratorPhpTest.php
  AL    src/test/php/configurators/test3.properties
  AL    src/test/php/configurators/LoggerConfiguratorIniTest.php
  AL    src/test/php/configurators/test4.properties
  AL    src/test/php/configurators/LoggerConfiguratorXmlTest.php
  AL    src/test/php/configurators/test2.properties
  AL    src/test/php/configurators/test1.php
  AL    src/test/php/configurators/test1.xml
  AL    src/test/php/configurators/test1.properties
  AL    src/test/php/configurators/LoggerConfiguratorBasicTest.php
  AL    src/test/php/helpers/LoggerOptionConverterTest.php
  AL    src/test/php/helpers/LoggerPatternParserTest.php
  AL    src/test/php/LoggerLoggingEventTest.php
  AL    src/test/php/LoggerFilterTest.php
  AL    src/test/php/LoggerTest.properties
  N     src/test/php/README
  AL    src/test/php/LoggerRootTest.php
  AL    src/test/php/filters/LoggerFilterLevelMatchTest.php
  AL    src/test/php/filters/LoggerFilterStringMatchTest.php
  AL    src/test/php/filters/LoggerFilterLevelRangeTest.php
  AL    src/test/php/filters/LoggerFilterDenyAllTest.php
  AL    src/test/php/LoggerLevelTest.php
  AL    src/test/php/renderers/LoggerRendererDefaultTest.php
  AL    src/test/php/renderers/LoggerRendererMapTest.php
  AL    src/test/php/renderers/test4.properties
  AL    src/test/php/renderers/LoggerRendererObjectTest.php
  AL    src/test/php/phpunit.xml
  AL    src/test/php/appenders/LoggerAppenderPhpTest.php
  AL    src/test/php/appenders/LoggerAppenderMailTest.php
  AL    src/test/php/appenders/LoggerAppenderMailEventTest.php
  AL    src/test/php/appenders/LoggerAppenderSocketTest.php
  AL    src/test/php/appenders/LoggerAppenderPDOTest.php
  AL    src/test/php/appenders/LoggerAppenderConsoleTest.php
  AL    src/test/php/appenders/LoggerAppenderDailyFileTest.php
  AL    src/test/php/appenders/LoggerAppenderSyslogTest.php
  AL    src/test/php/appenders/LoggerAppenderRollingFileTest.php
  AL    src/test/php/appenders/LoggerAppenderFileTest.php
  AL    src/test/php/appenders/LoggerAppenderEchoTest.php
  AL    src/test/php/appenders/LoggerAppenderNullTest.php
  AL    src/test/php/LoggerExceptionTest.php
  AL    src/test/php/LoggerHierarchyTest.php
  AL    src/test/php/layouts/LoggerLayoutTTCCTest.php
  AL    src/test/php/layouts/LoggerLayoutHtmlTest.php
  AL    src/test/php/layouts/LoggerLayoutXmlTest.php
  AL    src/test/php/layouts/LoggerLayoutSimpleTest.php
  AL    src/test/php/layouts/LoggerLayoutPatternTest.php
  AL    src/test/php/LoggerAppenderTest.php
  AL    src/test/php/LoggerReflectionUtilsTest.php
  AL    src/test/php/LoggerTest.php
  AL    src/test/php/bootstrap.php
  AL    pom.xml
  N     INSTALL
  N     README
  N     NOTICE
  AL    package.php
  N     LICENSE
  N     CHANGELOG
  AL    package-config.php
 
 *****************************************************
 Printing headers for files without AL header...
 
 
 =======================================================================
 ==src/examples/resources/appender_pdo.properties
 =======================================================================
; START SNIPPET: doxia
log4php.rootLogger = DEBUG, a1, a2, a3

; The table is created if necessary and filled using prepared statements.  
log4php.appender.a1 = LoggerAppenderPDO
log4php.appender.a1.dsn = "sqlite:target/appender_pdo.sqlite"

; The following shows an appender with customized INSERT statment and table name. 
log4php.appender.a2 = LoggerAppenderPDO
log4php.appender.a2.user = root
log4php.appender.a2.password = secret
log4php.appender.a2.dsn = "mysql:host=localhost;dbname=test"
log4php.appender.a2.table = log2
log4php.appender.a2.insertSql = "INSERT INTO log2 (timestamp, logger, level, message, thread, file, line) VALUES (?,?,?,?,?,?,?)"
log4php.appender.a2.insertPattern = "%d,%c,%p,%m, %t,%F,%L"

; DEPRECATED: Using old style LoggerPatternLayout is considered unsafe as %m can contain quotes that mess up the SQL! 
log4php.appender.a3 = LoggerAppenderPDO
log4php.appender.a3.dsn = "sqlite:target/appender_pdo.sqlite"
log4php.appender.a3.table = log3
log4php.appender.a3.sql = "INSERT INTO log3 (timestamp, level, message) VALUES ('%t', '%p', '%m')"
; END SNIPPET: doxia

 =======================================================================
 ==src/examples/resources/appender_mail.properties
 =======================================================================
; START SNIPPET: doxia
log4php.appender.email = LoggerAppenderMail
log4php.appender.email.layout = LoggerLayoutTTCC
log4php.appender.email.from = someone@example.com
log4php.appender.email.to = root@localhost
log4php.appender.email.subject = Log4php test
log4php.rootLogger = FATAL, email
; END SNIPPET: doxia

 =======================================================================
 ==src/examples/resources/cache.properties
 =======================================================================
; START SNIPPET: doxia
log4php.appender.default = LoggerAppenderEcho
log4php.appender.default.layout = LoggerLayoutSimple
log4php.rootLogger = DEBUG, default
; END SNIPPET: doxia

 =======================================================================
 ==src/examples/resources/appender_file.properties
 =======================================================================
; START SNIPPET: doxia
log4php.appender.default = LoggerAppenderFile
log4php.appender.default.file = target/examples/file.log
log4php.appender.default.layout = LoggerLayoutTTCC
log4php.rootLogger = DEBUG, default
; END SNIPPET: doxia

 =======================================================================
 ==src/examples/resources/appender_php.properties
 =======================================================================
; START SNIPPET: doxia
log4php.appender.default = LoggerAppenderPhp
log4php.appender.default.layout = LoggerLayoutPattern
log4php.appender.default.layout.conversionPattern = "%d{Y-m-d H:i:s.u} %-5p [%t] %c: %m%n"
log4php.rootLogger = DEBUG, default
; END SNIPPET: doxia

 =======================================================================
 ==src/examples/resources/layout_xml.properties
 =======================================================================
; START SNIPPET: doxia
log4php.appender.default = LoggerAppenderEcho
log4php.appender.default.layout = LoggerLayoutXml
log4php.rootLogger = DEBUG, default
; END SNIPPET: doxia

 =======================================================================
 ==src/examples/resources/appender_rollingfile.properties
 =======================================================================
; START SNIPPET: doxia
log4php.appender.default = LoggerAppenderRollingFile
log4php.appender.default.layout = LoggerLayoutTTCC
log4php.appender.default.file = target/examples/appender_rollingfile.log
log4php.appender.default.MaxFileSize = 100
log4php.appender.default.MaxBackupIndex = 3
log4php.rootLogger = DEBUG, default
; END SNIPPET: doxia

 =======================================================================
 ==src/examples/resources/layout_ttcc.properties
 =======================================================================
; START SNIPPET: doxia
log4php.appender.default = LoggerAppenderEcho
log4php.appender.default.layout = LoggerLayoutTTCC
log4php.appender.default.layout.MicroSecondsPrinting = false
log4php.appender.default.layout.categoryPrefixing = true
log4php.appender.default.layout.dateFormat = "%H:%M"
log4php.rootLogger = DEBUG, default
; END SNIPPET: doxia

 =======================================================================
 ==src/examples/resources/appender_syslog.properties
 =======================================================================
; START SNIPPET: doxia
log4php.appender.default = LoggerAppenderSyslog
log4php.appender.default.layout = LoggerLayoutSimple
log4php.appender.default.ident = log4php-test
log4php.appender.default.facility = LOG_LOCAL0
log4php.rootLogger = DEBUG, default
; END SNIPPET: doxia

 =======================================================================
 ==src/examples/resources/appender_echo.properties
 =======================================================================
; START SNIPPET: doxia
log4php.appender.default = LoggerAppenderEcho
log4php.appender.default.layout = LoggerLayoutTTCC
log4php.rootLogger = DEBUG, default
; END SNIPPET: doxia

 =======================================================================
 ==src/examples/resources/layout_html.properties
 =======================================================================
; START SNIPPET: doxia
log4php.appender.default = LoggerAppenderEcho
log4php.appender.default.layout = LoggerLayoutHtml
log4php.rootLogger = DEBUG, default
; END SNIPPET: doxia

 =======================================================================
 ==src/examples/resources/filter_stringmatch.xml
 =======================================================================
<?xml version="1.0" encoding="UTF-8"?>
<log4php:configuration xmlns:log4php="http://logging.apache.org/log4php/" threshold="all" debug="false">
    <appender name="default" class="LoggerAppenderEcho">
        <layout class="LoggerLayoutTTCC"/>
        <filter class="LoggerFilterStringMatch">
            <param name="StringToMatch" value="match" />
            <param name="AcceptOnMatch" value="false" />
        </filter>
    </appender>
    <root>
        <level value="DEBUG" />
        <appender_ref ref="default" />
    </root>
</log4php:configuration>

 =======================================================================
 ==src/examples/resources/appender_null.properties
 =======================================================================
; START SNIPPET: doxia
log4php.appender.default = LoggerAppenderNull
log4php.rootLogger = DEBUG, default
; END SNIPPET: doxia

 =======================================================================
 ==src/examples/resources/renderer_default.properties
 =======================================================================
; START SNIPPET: doxia
log4php.appender.default = LoggerAppenderEcho
log4php.appender.default.layout = LoggerLayoutSimple
log4php.rootLogger = DEBUG, default
; END SNIPPET: doxia

 =======================================================================
 ==src/examples/resources/filter_denyall.xml
 =======================================================================
<log4php:configuration
  xmlns:log4php="http://logging.apache.org/log4php/"
  threshold="all" debug="false">
    <appender name="default" class="LoggerAppenderEcho">
        <layout class="LoggerLayoutTTCC"/>
        <filter class="LoggerFilterDenyAll"/>
    </appender>
    <root>
        <level value="DEBUG" />
        <appender_ref ref="default" />
    </root>
</log4php:configuration>

 =======================================================================
 ==src/examples/resources/appender_socket_server.properties
 =======================================================================
; START SNIPPET: doxia
log4php.debug = true
log4php.appender.file = LoggerAppenderFile
log4php.appender.file.file = server.log
log4php.appender.file.layout = LoggerLayoutTTCC
log4php.appender.console = LoggerAppenderEcho
log4php.appender.console.layout = LoggerLayoutSimple
log4php.rootLogger = INFO, file, console
; END SNIPPET: doxia

 =======================================================================
 ==src/examples/resources/configurator_php.php
 =======================================================================
<?php
return array(
        'threshold' => 'ALL',
        'rootLogger' => array(
            'level' => 'INFO',
            'appenders' => array('default'),
        ),
        'loggers' => array(
            'dev' => array(
                'level' => 'DEBUG',
                'appenders' => array('default'),
            ),
        ),
        'appenders' => array(
            'default' => array(
                'class' => 'LoggerAppenderEcho',
                'layout' => array(
                    'class' => 'LoggerLayoutPattern',
                    'conversionPattern' => "%d{Y-m-d H:i:s} %-5p %c %X{username}: %m in %F at %L%n",
                ),
            ),
        ),
    );

 =======================================================================
 ==src/examples/resources/mdc.properties
 =======================================================================
; START SNIPPET: doxia
log4php.appender.default = LoggerAppenderEcho
log4php.appender.default.layout = LoggerLayoutPattern
log4php.appender.default.layout.conversionPattern="%d{Y-m-d H:i:s} %-5p %c %X{username}: %m in %F at %L%n"
log4php.rootLogger = DEBUG, default
; END SNIPPET: doxia

 =======================================================================
 ==src/examples/resources/appender_socket.properties
 =======================================================================
; START SNIPPET: doxia
log4php.appender.default = LoggerAppenderSocket
log4php.appender.default.layout = LoggerLayoutSimple
log4php.appender.default.remoteHost = localhost
log4php.appender.default.port = 4242
log4php.appender.default.useXml = true
log4php.appender.default.locationInfo = false
log4php.rootLogger = DEBUG, default
; END SNIPPET: doxia

 =======================================================================
 ==src/examples/resources/appender_dailyfile.properties
 =======================================================================
; START SNIPPET: doxia
log4php.appender.default = LoggerAppenderDailyFile
log4php.appender.default.layout = LoggerLayoutTTCC
log4php.appender.default.datePattern = Ymd
log4php.appender.default.file = target/examples/daily_%s.log
log4php.rootLogger = DEBUG, default
; END SNIPPET: doxia

 =======================================================================
 ==src/examples/resources/appender_console.properties
 =======================================================================
; START SNIPPET: doxia
log4php.appender.console = LoggerAppenderConsole
log4php.appender.console.target = STDOUT
log4php.appender.console.layout = LoggerLayoutSimple
log4php.rootLogger = DEBUG, console
; END SNIPPET: doxia

 =======================================================================
 ==src/examples/resources/renderer_map.properties
 =======================================================================
; START SNIPPET: doxia
log4php.renderer.Person = PersonRenderer

log4php.appender.default = LoggerAppenderEcho
log4php.appender.default.layout = LoggerLayoutSimple
log4php.rootLogger = DEBUG, default
; END SNIPPET: doxia

 =======================================================================
 ==src/examples/resources/appender_mailevent.properties
 =======================================================================
; START SNIPPET: doxia
log4php.appender.email = LoggerAppenderMail
log4php.appender.email.layout = LoggerLayoutTTCC
log4php.appender.email.from = someone@example.com
log4php.appender.email.to = root
log4php.appender.email.subject = Log4php test
log4php.rootLogger = FATAL, email
; END SNIPPET: doxia

 =======================================================================
 ==src/examples/resources/configurator_xml.xml
 =======================================================================
<?xml version="1.0" encoding="UTF-8"?>
<log4php:configuration xmlns:log4php="http://logging.apache.org/log4php/"
	threshold="all" debug="false">
	<appender name="default" class="LoggerAppenderEcho">
		<layout class="LoggerLayoutTTCC" />
	</appender>
	<root>
		<level value="DEBUG" />
		<appender_ref ref="default" />
	</root>
</log4php:configuration>

 =======================================================================
 ==src/examples/resources/filter_levelmatch.xml
 =======================================================================
<?xml version="1.0" encoding="UTF-8"?>
<log4php:configuration
  xmlns:log4php="http://logging.apache.org/log4php/"
  threshold="all" debug="false">
    <appender name="default" class="LoggerAppenderEcho">
        <layout class="LoggerLayoutTTCC"/>
        <filter class="LoggerFilterLevelMatch">
            <param name="LevelToMatch" value="DEBUG" />
            <param name="AcceptOnMatch" value="false" />
        </filter>
    </appender>
    <root>
        <level value="DEBUG" />
        <appender_ref ref="default" />
    </root>
</log4php:configuration>

 =======================================================================
 ==src/examples/resources/layout_pattern.properties
 =======================================================================
; START SNIPPET: doxia
log4php.appender.default = LoggerAppenderEcho
log4php.appender.default.layout = LoggerLayoutPattern
log4php.appender.default.layout.ConversionPattern = "%d{ISO8601} [%p] %c: %m (at %F line %L)%n"
log4php.rootLogger = DEBUG, default
; END SNIPPET: doxia

 =======================================================================
 ==src/examples/resources/ndc.properties
 =======================================================================
; START SNIPPET: doxia
log4php.appender.default = LoggerAppenderEcho
log4php.appender.default.layout = LoggerLayoutPattern
log4php.appender.default.layout.conversionPattern="%d{Y-m-d H:i:s} %-5p %c %x: %m in %F at %L%n"
log4php.rootLogger = DEBUG, default
; END SNIPPET: doxia

 =======================================================================
 ==src/examples/resources/filter_levelrange.xml
 =======================================================================
<?xml version="1.0" encoding="UTF-8"?>
<log4php:configuration
  xmlns:log4php="http://logging.apache.org/log4php/"
  threshold="all" debug="false">
    <appender name="default" class="LoggerAppenderEcho">
        <layout class="LoggerLayoutTTCC"/>
        <filter class="LoggerFilterLevelRange">
            <param name="LevelMin" value="ERROR" />
                        <param name="LevelMax" value="FATAL" />
            <param name="AcceptOnMatch" value="false" />
        </filter>
    </appender>
    <root>
        <level value="DEBUG" />
        <appender_ref ref="default" />
    </root>
</log4php:configuration>

 =======================================================================
 ==src/examples/resources/layout_simple.properties
 =======================================================================
; START SNIPPET: doxia
log4php.appender.default = LoggerAppenderEcho
log4php.appender.default.layout = LoggerLayoutSimple
log4php.rootLogger = DEBUG, default
; END SNIPPET: doxia

 =======================================================================
 ==src/examples/php/layout_simple.php
 =======================================================================
<?php
// START SNIPPET: doxia
require_once dirname(__FILE__).'/../../main/php/Logger.php';

Logger::configure(dirname(__FILE__).'/../resources/layout_simple.properties');
$logger = Logger::getRootLogger();
$logger->info("Hello World!");
// END SNIPPET: doxia

 =======================================================================
 ==src/examples/php/appender_mailevent.php
 =======================================================================
<?php
// START SNIPPET: doxia
require_once dirname(__FILE__).'/../../main/php/Logger.php';

Logger::configure(dirname(__FILE__).'/../resources/appender_mailevent.properties');
$logger = Logger::getRootLogger();
$logger->fatal("Some critical message!");
// END SNIPPET: doxia

 =======================================================================
 ==src/examples/php/layout_xml.php
 =======================================================================
<?php
// START SNIPPET: doxia
require_once dirname(__FILE__).'/../../main/php/Logger.php';

Logger::configure(dirname(__FILE__).'/../resources/layout_xml.properties');
$logger = Logger::getRootLogger();
$logger->info("Hello World!");
// END SNIPPET: doxia

 =======================================================================
 ==src/examples/php/mdc.php
 =======================================================================
<?php
// START SNIPPET: doxia
require_once dirname(__FILE__).'/../../main/php/Logger.php';

Logger::configure(dirname(__FILE__).'/../resources/mdc.properties');
LoggerMDC::put('username', 'knut');
$logger = Logger::getRootLogger();
$logger->debug("Testing MDC");
// END SNIPPET: doxia

 =======================================================================
 ==src/examples/php/appender_dailyfile.php
 =======================================================================
<?php
// START SNIPPET: doxia
require_once dirname(__FILE__).'/../../main/php/Logger.php';
Logger::configure(dirname(__FILE__).'/../resources/appender_dailyfile.properties');

$logger = Logger::getRootLogger();
$logger->debug("Hello World!");
// END SNIPPET: doxia

 =======================================================================
 ==src/examples/php/filter_levelmatch.php
 =======================================================================
<?php
// START SNIPPET: doxia
require_once dirname(__FILE__).'/../../main/php/Logger.php';

Logger::configure(dirname(__FILE__).'/../resources/filter_levelmatch.xml');
$logger = Logger::getRootLogger();
$logger->debug("Matching and will be rejected");
$logger->info("Not matching and will be accepted");
// END SNIPPET: doxia

 =======================================================================
 ==src/examples/php/appender_socket_server.php
 =======================================================================
<?php
// START SNIPPET: doxia
require_once dirname(__FILE__).'/../../main/php/Logger.php';
Logger::configure(dirname(__FILE__).'/../resources/appender_socket_server.properties');

require_once 'Net/Server.php';
require_once 'Net/Server/Handler.php';

class Net_Server_Handler_Log extends Net_Server_Handler {
  
        private $hierarchy;

        function onStart() {
                $this->hierarchy = Logger::getRootLogger();
        }
  
        function onReceiveData($clientId = 0, $data = "") {
                $events = $this->getEvents($data);
                foreach($events as $event) {
                        $root = $this->hierarchy->getRootLogger();
                        if($event->getLoggerName() === 'root') {
                            $root->callAppenders($event);
                        } else {
                             $loggers = $this->hierarchy->getCurrentLoggers();
                                foreach($loggers as $logger) {
                                        $root->callAppenders($event);
                                        $appenders = $logger->getAllAppenders();
                                        foreach($appenders as $appender) {
                                                $appender->doAppend($event);
                                        }
                                }
                        }
                }
        }
  
        function getEvents($data) {
                if (preg_match('/^<log4php:event/', $data)) {
                    throw new Exception("Please use 'log4php.appender.default.useXml = false' in appender_socket.properties file!");
                }
                preg_match('/^(O:\d+)/', $data, $parts);
                $events = split($parts[1], $data);
                array_shift($events);
                $size = count($events);
                for($i=0; $i<$size; $i++) {
                        $events[$i] = unserialize($parts[1].$events[$i]);
                }
                return $events;
        }
}


 =======================================================================
 ==src/examples/php/configurator_xml.php
 =======================================================================
<?php
// START SNIPPET: doxia
require_once dirname(__FILE__).'/../../main/php/Logger.php';

Logger::configure(dirname(__FILE__).'/../resources/configurator_xml.xml');
$logger = Logger::getRootLogger();
$logger->info("Hello World!");
// END SNIPPET: doxia


 =======================================================================
 ==src/examples/php/configurator_basic.php
 =======================================================================
<?php
// START SNIPPET: doxia
define('LOG4PHP_CONFIGURATOR_CLASS', 'LoggerConfiguratorBasic'); 
require_once dirname(__FILE__).'/../../main/php/Logger.php';

$logger = Logger::getRootLogger();
$logger->info("Hello World!");
// END SNIPPET: doxia

 =======================================================================
 ==src/examples/php/appender_php.php
 =======================================================================
<?php
// START SNIPPET: doxia
require_once dirname(__FILE__).'/../../main/php/Logger.php';
Logger::configure(dirname(__FILE__).'/../resources/appender_php.properties');
$logger = Logger::getRootLogger();
$logger->debug("Hello PHP!");
// END SNIPPET: doxia

 =======================================================================
 ==src/examples/php/appender_syslog.php
 =======================================================================
<?php
// START SNIPPET: doxia
require_once dirname(__FILE__).'/../../main/php/Logger.php';

Logger::configure(dirname(__FILE__).'/../resources/appender_syslog.properties');
$logger = Logger::getRootLogger();
$logger->fatal("Hello World!");
// END SNIPPET: doxia

 =======================================================================
 ==src/examples/php/appender_mail.php
 =======================================================================
<?php
// START SNIPPET: doxia
require_once dirname(__FILE__).'/../../main/php/Logger.php';

Logger::configure(dirname(__FILE__).'/../resources/appender_mail.properties');
$logger = Logger::getRootLogger();
$logger->fatal("Some critical message!");
$logger->fatal("Some more critical message!");
// END SNIPPET: doxia

 =======================================================================
 ==src/examples/php/filter_denyall.php
 =======================================================================
<?php
// START SNIPPET: doxia
require_once dirname(__FILE__).'/../../main/php/Logger.php';

Logger::configure(dirname(__FILE__).'/../resources/filter_denyall.xml');
$logger = Logger::getRootLogger();
$logger->info("Some text that will be discarded");
// END SNIPPET: doxia

 =======================================================================
 ==src/examples/php/renderer_map.php
 =======================================================================
<?php
// START SNIPPET: doxia
require_once dirname(__FILE__).'/../../main/php/Logger.php';
Logger::configure(dirname(__FILE__).'/../resources/renderer_map.properties');

class Person {
    public $firstName = 'John';
    public $lastName = 'Doe';
}

class PersonRenderer implements LoggerRendererObject {
    public function render($o) {
        return $o->lastName.', '.$o->firstName;
    }
}

$person = new Person();

$logger = Logger::getRootLogger();
$logger->debug("Now comes the current Person object:");
$logger->debug($person);
// END SNIPPET: doxia

 =======================================================================
 ==src/examples/php/renderer_default.php
 =======================================================================
<?php
// START SNIPPET: doxia
require_once dirname(__FILE__).'/../../main/php/Logger.php';
Logger::configure(dirname(__FILE__).'/../resources/renderer_default.properties');

class Person {
    public $firstName = 'John';
    public $lastName = 'Doe';

    public function __toString() {
        return $this->lastName . ', ' . $this->firstName;
    }
}

$person = new Person();

$logger = Logger::getRootLogger();
$logger->debug("Now comes the current MyClass object:");
$logger->debug($person);
// END SNIPPET: doxia

 =======================================================================
 ==src/examples/php/ndc.php
 =======================================================================
<?php
// START SNIPPET: doxia
require_once dirname(__FILE__).'/../../main/php/Logger.php';
Logger::configure(dirname(__FILE__).'/../resources/ndc.properties');
$logger = Logger::getRootLogger();

LoggerNDC::push('conn=1234');
$logger->debug("just received a new connection");
LoggerNDC::push('client=ab23');
$logger->debug("some more messages that can");
$logger->debug("now related to a client");
LoggerNDC::pop();
LoggerNDC::pop();
$logger->debug("back and waiting for new connections");
// END SNIPPET: doxia

 =======================================================================
 ==src/examples/php/appender_echo.php
 =======================================================================
<?php
// START SNIPPET: doxia
require_once dirname(__FILE__).'/../../main/php/Logger.php';

Logger::configure(dirname(__FILE__).'/../resources/appender_echo.properties');
$logger = Logger::getLogger('appender_echo');
$logger->debug("Hello World!");
// END SNIPPET: doxia

 =======================================================================
 ==src/examples/php/filter_levelrange.php
 =======================================================================
<?php
// START SNIPPET: doxia
require_once dirname(__FILE__).'/../../main/php/Logger.php';
 
Logger::configure(dirname(__FILE__).'/../resources/filter_levelrange.xml');
$logger = Logger::getRootLogger();
$logger->debug("This is a debug message");
$logger->info("This is an info message");
$logger->warn("This is a warning");
$logger->error("This is an error");
$logger->fatal("This is a fatal error");
// END SNIPPET: doxia

 =======================================================================
 ==src/examples/php/configurator_php.php
 =======================================================================
<?php
// START SNIPPET: doxia
require_once dirname(__FILE__).'/../../main/php/Logger.php';

Logger::configure(dirname(__FILE__).'/../resources/configurator_php.php', 'LoggerConfiguratorPhp');
$logger = Logger::getRootLogger();
$logger->info("Hello World!");
// END SNIPPET: doxia

 =======================================================================
 ==src/examples/php/appender_file.php
 =======================================================================
<?php
// START SNIPPET: doxia
require_once dirname(__FILE__).'/../../main/php/Logger.php';
Logger::configure(dirname(__FILE__).'/../resources/appender_file.properties');
$logger = Logger::getRootLogger();
$logger->debug("Hello World!");
// END SNIPPET: doxia

 =======================================================================
 ==src/examples/php/layout_html.php
 =======================================================================
<?php
// START SNIPPET: doxia
require_once dirname(__FILE__).'/../../main/php/Logger.php';

Logger::configure(dirname(__FILE__).'/../resources/layout_html.properties');
$logger = Logger::getRootLogger();
$logger->info("Hello World!");
// END SNIPPET: doxia

 =======================================================================
 ==src/examples/php/appender_socket.php
 =======================================================================
<?php
// START SNIPPET: doxia
require_once dirname(__FILE__).'/../../main/php/Logger.php';

Logger::configure(dirname(__FILE__).'/../resources/appender_socket.properties');
$logger = Logger::getRootLogger();
$logger->fatal("Hello World!");
// END SNIPPET: doxia

 =======================================================================
 ==src/examples/php/filter_stringmatch.php
 =======================================================================
<?php
// START SNIPPET: doxia
require_once dirname(__FILE__).'/../../main/php/Logger.php';

Logger::configure(dirname(__FILE__).'/../resources/filter_stringmatch.xml');
$logger = Logger::getRootLogger();
$logger->debug("Some text to match that will be rejected");
$logger->info("Some other text that will be accepted");
// END SNIPPET: doxia

 =======================================================================
 ==src/examples/php/cache.php
 =======================================================================
<?php
// START SNIPPET: doxia
require_once dirname(__FILE__).'/../../main/php/Logger.php';

Logger::configure(dirname(__FILE__).'/../resources/cache.properties');

$cache = 'target/examples/hierarchy.cache';

if(!file_exists($cache)) {
	$dir = dirname($cache);
	if(!is_dir($dir)) {
		mkdir($dir, 0777, true);
	}
	$old_logger = Logger::getRootLogger();
	file_put_contents($cache, serialize($old_logger));
}
$logger = unserialize(file_get_contents($cache));

$logger->debug('Debug message from cached logger');
// END SNIPPET: doxia

 =======================================================================
 ==src/examples/php/simple.php
 =======================================================================
<?php
// START SNIPPET: doxia
require_once dirname(__FILE__).'/../../main/php/Logger.php';

class Log4phpTest {
    private $_logger;
    
    public function __construct() {
        $this->_logger = Logger::getLogger('Log4phpTest');
        $this->_logger->debug('Hello!');
    }
}

function Log4phpTestFunction() {
    $logger = Logger::getLogger('Log4phpTestFunction');
    $logger->debug('Hello again!');    
}

$test = new Log4phpTest();
Log4phpTestFunction();
// END SNIPPET: doxia

 =======================================================================
 ==src/examples/php/appender_rollingfile.php
 =======================================================================
<?php
// START SNIPPET: doxia
require_once dirname(__FILE__).'/../../main/php/Logger.php';
Logger::configure(dirname(__FILE__).'/../resources/appender_rollingfile.properties');

$logger = Logger::getRootLogger();
$logger->debug("Hello World!");
// END SNIPPET: doxia

 =======================================================================
 ==src/examples/php/layout_ttcc.php
 =======================================================================
<?php
// START SNIPPET: doxia
require_once dirname(__FILE__).'/../../main/php/Logger.php';

Logger::configure(dirname(__FILE__).'/../resources/layout_ttcc.properties');
$logger = Logger::getRootLogger();
$logger->info("Hello World!");
// END SNIPPET: doxia

 =======================================================================
 ==src/examples/php/appender_console.php
 =======================================================================
<?php
// START SNIPPET: doxia
require_once dirname(__FILE__).'/../../main/php/Logger.php';
Logger::configure(dirname(__FILE__).'/../resources/appender_console.properties');

$logger = Logger::getRootLogger();
$logger->debug("Hello World!");
// END SNIPPET: doxia

 =======================================================================
 ==src/examples/php/appender_null.php
 =======================================================================
<?php
// START SNIPPET: doxia
require_once dirname(__FILE__).'/../../main/php/Logger.php';

Logger::configure(dirname(__FILE__).'/../resources/appender_null.properties');
$logger = Logger::getRootLogger();
$logger->fatal("Hello World!");
// END SNIPPET: doxia

 =======================================================================
 ==src/examples/php/layout_pattern.php
 =======================================================================
<?php
// START SNIPPET: doxia
require_once dirname(__FILE__).'/../../main/php/Logger.php';

Logger::configure(dirname(__FILE__).'/../resources/layout_pattern.properties');
$logger = Logger::getRootLogger();
$logger->info("Hello World!");
$logger->debug("Second line");
// END SNIPPET: doxia

 =======================================================================
 ==src/examples/php/appender_pdo.php
 =======================================================================
<?php
// START SNIPPET: doxia
require_once dirname(__FILE__).'/../../main/php/Logger.php';

Logger::configure(dirname(__FILE__).'/../resources/appender_pdo.properties');
$logger = Logger::getRootLogger();
$logger->fatal("Hello World!");
// END SNIPPET: doxia