Welcome to ESRI Blogs

Using detailed logging with ArcGIS Server 9.3

During the initial releases of ArcGIS Server, many users asked for fine-grained logging down to the layer draw level. This functionality was added to ArcGIS Server 9.3 as a new logging level Info:Detailed. The detailed logging is especially helpful when troubleshooting performance. In this post, we’ll consider the scenario that you have a map service that’s not drawing as fast as you’d like.

Here it’s worth noting that before you go to the logs, it may be easier to catch the problem using the popular mxdperfstat tool from ArcScripts or the “Analyze” button on the 9.3.1 Map Service Publishing Toolbar. As ArcGIS Server 9.3.1 becomes available in the next few weeks, we’ll be posting more information about the Map Service Publishing toolbar and how it can quickly point out areas for improvement in your map document. Version 9.3.1 also includes a faster drawing engine for map services that will help improve performance.

When you need more detail about what’s happening during a map draw, you can go to the log files and enable the new detailed logging. This is the workflow you’d follow:

  1. Set the log level to Info:Detailed. If you need help with this step, see Specifying the log file location (skip steps 3 and 4). While you’re looking at the log properties page, note the path to the log file and browse to the log directory in Windows Explorer so you don’t have to hunt around for the file later.
  2. Make a simple request to your map service by zooming or panning. Note the current time so you can find the request in the log.
  3. Examine the log that was created during your request and note the feature count and elapsed draw time of each layer. For this step sometimes it’s helpful to print the log and use a highlighter to note the draw times. You’ll immediately see which layers are taking the longest to draw. Also, keep an eye on the feature count to spot inefficient layers. A layer may take only 0.2 seconds to draw at a particular extent, but if the extent only included 2 features you may have a potential inefficiency.
  4. Repeat this process at several different locations and scales in your map. You want to make sure you analyze a good sample of the symbology and layers in your map.
  5. When you finish, set the log level back to Normal.

The Help topic Map service log codes contains a table of the codes you’ll see when analyzing the detailed logging. If you scroll down the topic you’ll also find an example of the codes returned from a simple ExportMapImage request like the one that happens when you zoom or pan the map.

To learn more about detailed logging and the different log levels, see How log files work.

Contributed by Sterling Quinn of the ArcGIS Server development team

Published Monday, April 27, 2009 11:50 AM by sterlingdq

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS

Comments

# re: Using detailed logging with ArcGIS Server 9.3

I just ran through a bunch of tests on my MXD's with a variety of issues identified. I see a lot of "Set scale dependency" issues popping up. Would that have any impact on a fused cache service? It seems to me that it wouldn't or at most result in a slightly larger tile size. I guess what I am wondering if this tool is designed more for analyzing dynamic services vs cached services? or am I missing something? either way its a really cool little program!
Wednesday, April 29, 2009 11:15 AM by Dan Brumm

# re: Using detailed logging with ArcGIS Server 9.3

Hi Dan. Scale dependency is just a way you can avoid showing too much data at once or data that is inappropriate for a certain resolution. It's always up to the map author to make a good decision about when or when not to use scale dependency.

Showing more features than necessary (no scale dependency) can slow down dynamic drawing and the drawing of the cache tiles. But you're right- once the tiles are completed it won't matter much whether you had scale dependency set or not.

Wednesday, April 29, 2009 11:52 AM by sterlingdq

Leave a Comment

(required) 
required 
(required)