diff options
Diffstat (limited to 'doc/book/src/java-broker/Debug-using-log4j.xml')
-rw-r--r-- | doc/book/src/java-broker/Debug-using-log4j.xml | 298 |
1 files changed, 298 insertions, 0 deletions
diff --git a/doc/book/src/java-broker/Debug-using-log4j.xml b/doc/book/src/java-broker/Debug-using-log4j.xml new file mode 100644 index 0000000000..615fd9e560 --- /dev/null +++ b/doc/book/src/java-broker/Debug-using-log4j.xml @@ -0,0 +1,298 @@ +<?xml version="1.0" encoding="utf-8"?> + +<!-- + + 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. + +--> + +<section id="Java-Broker-Debug-Logging"><title> + Debug using log4j + </title> + + <section role="h2" id="Debugusinglog4j-Debuggingwithlog4jconfigurations"><title> + Debugging + with log4j configurations + </title> + <para> + Unfortunately setting of logging in the Java Broker is not simply + a matter of setting one of WARN,INFO,DEBUG. At some point in the + future we may have more BAU logging that falls in to that + category but more likely is that we will have a varioius config + files that can be swapped in (dynamically) to understand what is + going on. + </para><para> + This page will be host to a variety of useful configuration + setups that will allow a user or developer to extract only the + information they are interested in logging. Each section will be + targeted at logging in a particular area and will include a full + log4j file that can be used. In addition the logging + <emphasis>category</emphasis> elements will be presented and discussed so + that the user can create their own file. + </para><para> + Currently the configuration that is available has not been fully + documented and as such there are gaps in what is desired and what + is available. Some times this is due to the desire to reduce the + overhead in message processing, but sometimes it is simply an + oversight. Hopefully in future releases the latter will be + addressed but care needs to be taken when adding logging to the + 'Message Flow' path as this will have performance implications. + </para> + + <section role="h3" id="Debugusinglog4j-LoggingConnectionState-5CDeprecated-5C"><title> + Logging + Connection State *Deprecated* + </title> + <para> + <emphasis>deprecation notice</emphasis> Version 0.6 of the Java broker includes + <xref linkend="qpid_Configure-Operational-Status-Logging"/> functionality which improves upon these messages and + as such enabling status logging would be more beneficial. + The configuration file has been left here for assistence with + broker versions prior to 0.6. + </para><para> + The goals of this configuration are to record: + </para><itemizedlist> + <listitem><para>New Connections + </para></listitem> + <listitem><para>New Consumers + </para></listitem> + <listitem><para>Identify slow consumers + </para></listitem> + <listitem><para>Closing of Consumers + </para></listitem> + <listitem><para>Closing of Connections + </para></listitem> + </itemizedlist><para> + An additional goal of this configuration is to minimise any + impact to the 'message flow' path. So it should not adversely + affect production systems. + </para> +<programlisting> +<![CDATA[ +<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> + <appender name="FileAppender" class="org.apache.log4j.FileAppender"> + <param name="File" value="${QPID_WORK}/log/${logprefix}qpid${logsuffix}.log"/> + <param name="Append" value="false"/> + + <layout class="org.apache.log4j.PatternLayout"> + <param name="ConversionPattern" value="%d %-5p [%t] %C{2} (%F:%L) - %m%n"/> + </layout> + + </appender> + + <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender"> + + <layout class="org.apache.log4j.PatternLayout"> + <param name="ConversionPattern" value="%d %-5p [%t] %C{2} (%F:%L) - %m%n"/> + </layout> + </appender> + + <category name="Qpid.Broker"> + + <priority value="debug"/> + </category> + + + <!-- Provide warnings to standard output --> + <category name="org.apache.qpid"> + <priority value="warn"/> + </category> + + + <!-- Connection Logging --> + + <!-- Log details of client starting connection --> + <category name="org.apache.qpid.server.handler.ConnectionStartOkMethodHandler"> + <priority value="info"/> + </category> + <!-- Log details of client closing connection --> + <category name="org.apache.qpid.server.handler.ConnectionCloseMethodHandler"> + <priority value="info"/> + </category> + <!-- Log details of client responding to be asked to closing connection --> + + <category name="org.apache.qpid.server.handler.ConnectionCloseOkMethodHandler"> + <priority value="info"/> + </category> + + + <!-- Consumer Logging --> + <!-- Provide details of Consumers connecting--> + <category name="org.apache.qpid.server.handler.BasicConsumeMethodHandler"> + <priority value="debug"/> + </category> + + <!-- Provide details of Consumers disconnecting, if the call it--> + <category name="org.apache.qpid.server.handler.BasicCancelMethodHandler"> + <priority value="debug"/> + </category> + <!-- Provide details of when a channel closes to attempt to match to the Consume as a Cancel is not always issued--> + <category name="org.apache.qpid.server.handler.ChannelCloseHandler"> + <priority value="info"/> + </category> + + <!-- Provide details of Consumers starting to consume--> + <category name="org.apache.qpid.server.handler.ChannelFlowHandler"> + <priority value="debug"/> + </category> + <!-- Provide details of what consumers are going to be consuming--> + <category name="org.apache.qpid.server.handler.QueueBindHandler"> + <priority value="info"/> + </category> + + <!-- No way of determining if publish message is returned, client log should show it.--> + + <root> + <priority value="debug"/> + <appender-ref ref="STDOUT"/> + <appender-ref ref="FileAppender"/> + </root> + +</log4j:configuration> +]]> +</programlisting> + <!--h3--></section> + + <section role="h3" id="Debugusinglog4j-DebuggingMyApplication"><title> + Debugging My + Application + </title> + <para> + This is the most often asked for set of configuration. The goals + of this configuration are to record: + </para><itemizedlist> + <listitem><para>New Connections + </para></listitem> + <listitem><para>New Consumers + </para></listitem> + <listitem><para>Message Publications + </para></listitem> + <listitem><para>Message Consumption + </para></listitem> + <listitem><para>Identify slow consumers + </para></listitem> + <listitem><para>Closing of Consumers + </para></listitem> + <listitem><para>Closing of Connections + </para></listitem> + </itemizedlist><para> + NOTE: This configuration enables message logging on the 'message + flow' path so should only be used were message volume is + low. + <emphasis>Every message that is sent to the broker will generate at + least four logging statements</emphasis> + </para> +<programlisting> +<![CDATA[ +<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> + <appender name="FileAppender" class="org.apache.log4j.FileAppender"> + <param name="File" value="${QPID_WORK}/log/${logprefix}qpid${logsuffix}.log"/> + <param name="Append" value="false"/> + + <layout class="org.apache.log4j.PatternLayout"> + <param name="ConversionPattern" value="%d %-5p [%t] %C{2} (%F:%L) - %m%n"/> + </layout> + + </appender> + + <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender"> + + <layout class="org.apache.log4j.PatternLayout"> + <param name="ConversionPattern" value="%d %-5p [%t] %C{2} (%F:%L) - %m%n"/> + </layout> + </appender> + + <category name="Qpid.Broker"> + + <priority value="debug"/> + </category> + + + <!-- Provide warnings to standard output --> + <category name="org.apache.qpid"> + <priority value="warn"/> + </category> + + + <!-- Connection Logging --> + + <!-- Log details of client starting connection --> + <category name="org.apache.qpid.server.handler.ConnectionStartOkMethodHandler"> + <priority value="info"/> + </category> + <!-- Log details of client closing connection --> + <category name="org.apache.qpid.server.handler.ConnectionCloseMethodHandler"> + <priority value="info"/> + </category> + <!-- Log details of client responding to be asked to closing connection --> + + <category name="org.apache.qpid.server.handler.ConnectionCloseOkMethodHandler"> + <priority value="info"/> + </category> + + <!-- Consumer Logging --> + <!-- Provide details of Consumers connecting--> + <category name="org.apache.qpid.server.handler.BasicConsumeMethodHandler"> + <priority value="debug"/> + </category> + + <!-- Provide details of Consumers disconnecting, if the call it--> + <category name="org.apache.qpid.server.handler.BasicCancelMethodHandler"> + <priority value="debug"/> + </category> + <!-- Provide details of when a channel closes to attempt to match to the Consume as a Cancel is not always issued--> + <category name="org.apache.qpid.server.handler.ChannelCloseHandler"> + <priority value="info"/> + </category> + + <!-- Provide details of Consumers starting to consume--> + <category name="org.apache.qpid.server.handler.ChannelFlowHandler"> + <priority value="debug"/> + </category> + <!-- Provide details of what consumers are going to be consuming--> + <category name="org.apache.qpid.server.handler.QueueBindHandler"> + <priority value="info"/> + </category> + + <!-- No way of determining if publish message is returned, client log should show it.--> + + <!-- WARNING DO NOT ENABLE THIS IN PRODUCTION --> + <!-- Will generate minimum one log statements per published message --> + <!-- Will generate will log receiving of all body frame, count will vary on size of message.--> + <!-- Empty Message = no body, Body is up to 64kb of data --> + <!-- Will generate three log statements per recevied message --> + + <!-- Log messages flow--> + <category name="org.apache.qpid.server.AMQChannel"> + + <priority value="debug"/> + </category> + + <root> + <priority value="debug"/> + <appender-ref ref="STDOUT"/> + <appender-ref ref="FileAppender"/> + </root> + +</log4j:configuration> +]]> +</programlisting> + +<!--h3--></section> +<!--h2--></section> +</section> |