Author: vgritsenko Date: Wed Mar 30 10:42:00 2005 New Revision: 159504 URL: http://svn.apache.org/viewcvs?view=rev&rev=159504 Log: sync logging configuration cleanup with 2.2: simplify default log config, remove extra targets
Removed: cocoon/branches/BRANCH_2_1_X/src/blocks/apples/conf/apples-category.xlog cocoon/branches/BRANCH_2_1_X/src/blocks/apples/conf/apples-target.xlog cocoon/branches/BRANCH_2_1_X/src/blocks/cron/conf/cron-category.xlog cocoon/branches/BRANCH_2_1_X/src/blocks/cron/conf/cron-target.xlog cocoon/branches/BRANCH_2_1_X/src/blocks/slide/conf/slide-category.xlog cocoon/branches/BRANCH_2_1_X/src/blocks/slide/conf/slide-target.xlog cocoon/branches/BRANCH_2_1_X/src/blocks/woody/conf/woody-category.xlog cocoon/branches/BRANCH_2_1_X/src/blocks/woody/conf/woody-target.xlog Modified: cocoon/branches/BRANCH_2_1_X/src/webapp/WEB-INF/logkit.xconf Modified: cocoon/branches/BRANCH_2_1_X/src/webapp/WEB-INF/logkit.xconf URL: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/webapp/WEB-INF/logkit.xconf?view=diff&r1=159503&r2=159504 ============================================================================== --- cocoon/branches/BRANCH_2_1_X/src/webapp/WEB-INF/logkit.xconf (original) +++ cocoon/branches/BRANCH_2_1_X/src/webapp/WEB-INF/logkit.xconf Wed Mar 30 10:42:00 2005 @@ -1,4 +1,4 @@ -<?xml version="1.0"?> +<?xml version="1.0" encoding="UTF-8"?> <!-- Copyright 1999-2004 The Apache Software Foundation @@ -15,148 +15,129 @@ limitations under the License. --> +<!--+ + | This is the cocoon logkit configuration file. + | + | By default, Cocoon uses Excalibur logkit for logging, but it also + | supports Log4J. In case you want to use Log4J, you have to modify + | a configuration property in the 'WEB-INF/web.xml' file (search + | for log4j and you find it) + | + | The comments below should get you started in adapting the logs + | for your needs, but if you want to know more please visit + | + | http://wiki.apache.org/cocoon/ConfiguringTheLogs + | + | $Id$ + +--> <logkit> + + <!--+ + | Factories are responsible to create the consumers of the log events, + | the targets. Here we have configured just a few, the main cocoon + | target factory (that prints to a file) and the servlet target factory + | (that prints back to the servlet container log stream) but for more + | info on the available logkit factories, please consult + | http://excalibur.apache.org/apidocs/org/apache/avalon/excalibur/logger/factory/package-summary.html + +--> <factories> - <factory type="priority-filter" class="org.apache.avalon.excalibur.logger.factory.PriorityFilterTargetFactory"/> - <factory type="servlet" class="org.apache.avalon.excalibur.logger.factory.ServletTargetFactory"/> <factory type="cocoon" class="org.apache.cocoon.util.log.CocoonTargetFactory"/> - <factory type="lf5" class="org.apache.avalon.excalibur.logger.factory.LF5TargetFactory"/> + <factory type="servlet" class="org.apache.avalon.excalibur.logger.factory.ServletTargetFactory"/> + <factory type="stream" class="org.apache.avalon.excalibur.logger.factory.StreamTargetFactory"/> </factories> + <!--+ + | Targets are the instances of the consumers of the log events and various + | instances can be configured and referenced via their 'id'. + | Note how the element name of the target indicates what type of factory + | that is created with. + +--> <targets> - <!-- To enable the LogFactor5 graphical logkit browser, replace the cocoon factory - below with the following. - <lf5 id="core"/> - --> - - <cocoon id="core"> - <filename>${context-root}/WEB-INF/logs/core.log</filename> - <format type="cocoon"> - %7.7{priority} %{time} [%{category}] (%{uri}) %{thread}/%{class:short}: %{message}\n%{throwable} - </format> - <!-- - append=false: Will override existing log files on Cocoon startup - append=true: Will append to the existing log files - --> + <cocoon id="main"> + <!--+ + | <filename> is the absolute location of the log file, note how you can + | use the ${context-root} variable to indicate the root of the + | cocoon web application (the directory that contains WEB-INF, that is) + +--> + <filename>${context-root}/WEB-INF/logs/cocoon.log</filename> + + <!--+ + | <format> indicates how the log event should be serialized. + | Note that newlines are *not* automatic: you have to specify the + | newline as '\n' or everything will appear on a single line! + | The first format below is less verbose because it won't print out + | the error stacktrace (which tend to be very verbose and for little value). + | If you need the stacktraces, uncomment the second format below. + +--> + <format type="cocoon">%5.5{priority} %{time} [%{category}] (%{uri}) %{thread}/%{class:short}: %{message}\n</format> + <!--format type="cocoon">%5.5{priority} %{time} [%{category}] (%{uri}) %{thread}/%{class:short}: %{message}\n%{throwable}</format--> + + <!--+ + | <append> if set to 'true' will make cocoon append the events + | to the existing file, if set to 'false' cocoon will override + | the existing ones at every new start. + +--> <append>false</append> - <!-- - rotation: allows you to rotate log files one they meet certain - criteria. In example below, files are rotated once they - are one hour old or bigger than 100 Mb. - <rotation type="revolving" init="1" max="4"> + <!--+ + | <rotation> allows you to rotate log files one they meet certain + | criteria. If you uncomment the example below, the log files will + | be rotated once they are a day old or bigger than 100 Mb. + <rotation type="unique" pattern="yyyyMMdd" suffix=".log"> <or> <size>100m</size> - <time>01:00:00</time> + <time>24:00:00</time> </or> </rotation> - --> - </cocoon> - - <cocoon id="sitemap"> - <filename>${context-root}/WEB-INF/logs/sitemap.log</filename> - <format type="cocoon"> - %7.7{priority} %{time} [%{category}] (%{uri}) %{thread}/%{class:short}: %{message}\n%{throwable} - </format> - <append>false</append> - </cocoon> - - <cocoon id="handled-errors"> - <filename>${context-root}/WEB-INF/logs/handled-errors.log</filename> - <format type="cocoon"> - %7.7{priority} %{time} [%{category}] (%{uri}) %{thread}/%{class:short}: %{message}\n%{throwable} - </format> - <append>false</append> - </cocoon> - - <cocoon id="access"> - <filename>${context-root}/WEB-INF/logs/access.log</filename> - <format type="cocoon"> - %7.7{priority} %{time} [%{category}] (%{uri}) %{thread}/%{class:short}: %{message}\n%{throwable} - </format> - <append>false</append> - </cocoon> - - <!-- The logger for the flow layer --> - <cocoon id="flow"> - <filename>${context-root}/WEB-INF/logs/flow.log</filename> - <format type="cocoon"> - %7.7{priority} %{time} [%{category}] (%{uri}) %{thread}/%{class:short}: %{message}\n%{throwable} - </format> - <append>false</append> + +--> </cocoon> <cocoon id="deprecation"> <filename>${context-root}/WEB-INF/logs/deprecation.log</filename> - <format type="cocoon">%7.7{priority} %{time} [%{category}] (%{uri}) %{thread}/%{class:short}: %{message}\n</format> + <format type="cocoon">%5.5{priority} %{time} [%{category}] (%{uri}) %{thread}/%{class:short}: %{message}\n</format> <append>true</append> </cocoon> - <!-- - This log file gets only messages with log level ERROR and below. - --> - <priority-filter id="error" log-level="ERROR"> - <cocoon> - <filename>${context-root}/WEB-INF/logs/error.log</filename> - <format type="cocoon"> - %7.7{priority} %{time} [%{category}] (%{uri}) %{thread}/%{class:short}: %{message}\n%{throwable} - </format> - <append>false</append> - </cocoon> - </priority-filter> + <servlet id="servlet"> + <format type="extended">%5.5{priority} %5.5{time} [%8.8{category}] (%{context}): %{message}\n</format> + </servlet> + + <stream id="console"> + <stream>System.out</stream> + <format type="extended">%5.5{priority} %5.5{time} [%8.8{category}] (%{context}): %{message}\n</format> + </stream> </targets> + <!--+ + | Categories 'route' log events to particular targets, filtering + | on importance level (one of DEBUG, INFO, WARN, ERROR, FATAL_ERROR, + | ordered from most verbose to least verbose) and on the 'category' + | used by the producer of the log event to further classify it. + | Some of these log categories are hardwired in the code and some + | others are user-selectable, for example for sitemap components + | where you can specify the category in their sitemap declaration. + | + | Category names can be dot-separated (example, 'sitemap.generator.file') + | and the variuos pieces are treated as 'sub-categories'. By nesting + | the <category> element you achieve sub-category filtering and you can + | even have different log level filtering per category and subcategory. + | (See the comments below for an example of this) + | + | NOTE: not all subcategories are defined in this file. Not defined + | subcategories will be created automatically and they will inherit + | the settings of the parent subcategory. When defining a subcategory + | manually, it is required that you specify the log target, because + | they are not inherited in this case. + +--> <categories> - <!-- - log-level: One of DEBUG, INFO, WARN, ERROR, FATAL_ERROR. - Log level could be different for every category and subcategory. - - Not all subcategories are defined in this file. Not defined - subcategories will be created automatically inheriting settings - of the parent subcategory. - When defining subcategory manually, it is required to specify log - targets, because they are not inherited in this case. - --> - <category name="core" log-level="@loglevel@"> - <!-- Startup component manager logger --> - <category name="startup" log-level="@loglevel@"> - <log-target id-ref="core"/> - <log-target id-ref="error"/> - </category> - - <category name="roles" log-level="@loglevel@"> - <log-target id-ref="core"/> - <log-target id-ref="error"/> - </category> - - <category name="instrument" log-level="@loglevel@"> - <category name="values" log-level="@loglevel@"> - <log-target id-ref="core"/> - <log-target id-ref="error"/> - </category> - <log-target id-ref="core"/> - <log-target id-ref="error"/> - </category> - - <!-- Cocoon component manager logger --> - <category name="manager" log-level="@loglevel@"> - <log-target id-ref="core"/> - <log-target id-ref="error"/> - </category> - - <!-- Cocoon cache and stores logger --> - <category name="store" log-level="@loglevel@"> - <category name="janitor" log-level="@loglevel@"> - <log-target id-ref="core"/> - <log-target id-ref="error"/> - </category> - <log-target id-ref="core"/> - <log-target id-ref="error"/> - </category> - <log-target id-ref="core"/> - <log-target id-ref="error"/> + <!--+ + | This is the main category. The empty name attribute indicates that + | this rule will match all log events from all categories. + +--> + <category log-level="@loglevel@" name=""> + <log-target id-ref="main"/> </category> <!--+ @@ -168,30 +149,23 @@ <log-target id-ref="deprecation"/> </category> - <category name="sitemap" log-level="@loglevel@"> - <log-target id-ref="sitemap"/> - <log-target id-ref="error"/> - - <category name="handled-errors" log-level="@loglevel@"> - <!-- Exceptions that will be handled by a sitemap errorhandler are - logged to this target. --> - <log-target id-ref="handled-errors"/> + <!--+ + | This is a little more elaborate example, where some of the logs are + | sent to the log file and some others (the ones related to the sitemap), + | are sent to the servlet container (where they could be further relayed + | to the console, for example) + | + <category log-level="ERROR" name=""> + <category log-level="DEBUG" name="sitemap"> + <log-target id-ref="servlet"/> + </category> + <category log-level="INFO" name="access"> + <log-target id-ref="console"/> </category> - </category> - - <category name="access" log-level="@loglevel@"> - <log-target id-ref="access"/> - <log-target id-ref="error"/> - </category> - - <category name="flow" log-level="@loglevel@"> - <log-target id-ref="flow"/> - <log-target id-ref="error"/> - </category> - - <category name="" log-level="@loglevel@"> <log-target id-ref="core"/> - <log-target id-ref="error"/> </category> + +--> + </categories> + </logkit>