VocalOS and HDAP Logging July 17, 2007
Log Files Several types and layers of logs VocalOS Server • Stored in jboss/bin/vocalos/logs App_log.log – Things that happen on a call Server.log – Details of every call
• Stored in jboss/bin/vocalos/callLogs File name based on CCXML Session ID Directory based on time call orginated
HDAP Server • Stored in jboss/bin/hdap Hdap.log – Everything that happens in Appserver and UI Hdapui.log – Going away with the next build © Vocalocity, Inc : : 2005
2
Technology Log4J (http://logging.apache.org/log4j) • Open source logging framework for Java • Receives messages from all over the system and manages files and IO
Configured via XML file Default configuration is for 20MB files, zipped once they are done Keep 10 old zips Also used by JBoss for server logging
© Vocalocity, Inc : : 2005
3
Logging Levels ERROR – critical problem occurred. Can result in call hanging up or user action in UI not being processed. Never a good thing WARN – something bad probably happened. Generally unexpected condition, but recognized as bad at the time of development. Might have caused a call to be hung up or a user action in the UI not being processed, but might not. INFO – summary of what happened. Major action points during a call or UI action DEBUG – the details of what happened.
© Vocalocity, Inc : : 2005
4
Sample Log Line 2007-07-15 20:30:27,500 [main] INFO [org.apache.catalina.core.ContainerBase.[jboss.web].[localho st].[/hdapui]] Loading Spring root WebApplicationContext 2007-07-15 20:30:27,500 – time the event occurred. This is recorded in server timezone [main] – thread on which the message was generated INFO – log level [org.apache.catalina.core.ContainerBase.[jboss.web].[localho st].[/hdapui]] – source of the message Loading Spring root WebApplicationContext – actual message
© Vocalocity, Inc : : 2005
5
Tracing a UI Call UI and API calls are always processed in a HTTP thread Name is http-0.0.0.0-8080-X To find all messages about a particular invocation: • Find something unique to your invocation (device kit id, unique text, etc) • Determine the thread id for that log message • Search backwards for that log message until there is a significant time gap (multiple seconds) • This is the beginning of the invocation
© Vocalocity, Inc : : 2005
6
Call Logs XML Format Nested elements for nested devices Each device begins with:
© Vocalocity, Inc : : 2005
7
Call Logs (cont’d) Each message logged with metadata: <message level="INFO" category="CCXML" time="1184240232141" source="14826078371184240232141"> Starting at document null because nothing was specified in the INVITE
© Vocalocity, Inc : : 2005
8
Multiple Devices Devices nested within each other for serial invocation (see file in TextPad)
© Vocalocity, Inc : : 2005
9
Dump Threads Developed to find hanging sessions Also added to HDAP http://cain:8080/vocalocity-browser/diagnostic/dumpthreads.jsp • Memory, threads • Current calls, conference stats • Call performance metrics
http://cain:8080/vocalocity-browser/jsp/sessions.jsp • All running devices
http://samuel:8080/appserver/diagnostic/dumpthreads.jsp • Only memory and threads
© Vocalocity, Inc : : 2005
10