| <?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> |