Table of Contents
Known Problems
Time of "since last visit" may not be updated with each visit. This is under investigation.
The drill-down links (browse, host, etc) do not preserve filter information
Netscape 7.0 is incorrectly detected as Netscape 6.0. Mozilla 1.x (also known as 5.x) is also incorrectly identified as Netscape 6.0.
Planned Changes
Several AXS users have submitted code updates which are waiting to be ported in to the system, included a most popular searches graph.
Add new graph type, "Most common search engines" which shows which sites are sending you the most traffic, but limits itself to only known search engines.
Allow AXS to track form submissions, where there would normally be a FORM METHOD=get ACTION=foo.pl. Allow AXS to replace this with FORM METHOD=get ACTION=ax.pl?foo.pl or something similar.
In addition to ax.pl and ax-admin.pl, have a single common file for storing data like passwords, paths to logs, etc. This will improve the script set because data will only be stored in one place, preventing discrepancies. It will also be easier to upgrade in the future.
Log screen resolution where possible
Addition of cookies to identify unique visitors
Switch to the FDSE token-based security system, rather than rely on client IP address. The current security model fails for users behind a proxy bank, and is not secure for multiple users behind a single proxy.
Requested Changes - under consideration, but no time budgeted yet. Note that code submissions are always welcome. Most will be added immediately.
Add multi-user version
Allow users to customize the order in which graphs are drawn. For example, put hourly hits before the graph of browser types.
Option to print text percentages, but not the image bars (for better printing).
"Log average time spent on a page by visitors, and couple it with average pages visited. I know the time spent is not necessarily spent reading the page (and the last viewed page might be missed, if not left by a link), but it is possible for it to be a relative gauge."
"Sort pages by the time spent 'on' them. (option for graphical view)"
Add the different search robots (like Altavista's Scooter) to the abbreviated browser names table.
Count unique visitors in addition to raw HTTP hits.
Make the log file extensible, so users can add extra data like screen resolution or cookie.
Write a function in vbscript that will do the same work as ax.pl, for inclusion in IIS ASP pages.
When the log file reaches it maximum size, it currently stops accepting new records. Customers have requested that the oldest entries be deleted to make room for newer records.
Distribute copies of the logging module in PHP and as a Perl-function-call
Version History
Some older versions can be found in the download folder.
v3.0.0.wwww - under development
- ...
v2.3.0.0042 - under development
...
v2.3.0.0041 - 2004-10-10 - stable
Graph s05 was incorrectly labeled "Visitor 1-Level Domain (xav.com)". Was corrected to "Visitor Second-Level Domain".
v2.3.0.0040 - 2004-09-27 - stable
To reduce the number of support questions about the need for a physical file named "trans.gif", the default logging tag has changed from ax.pl?trans.gif to ax.pl?mode=img. Both logging tags will work equally well; the newer one with mode=img should cause less confusion.
The default logging tag now uses the style "display:none" for the logging image. This will cause the image to take up no space in the page layout, despite the height and width attributes of 1 pixel. This should minimize the problems that AXS sometimes causes by interfering with tight layouts.
AXS now strips vertical whitespace from HTTP response headers. This protects against HTTP response splitting hacks.
When using the deprecated SSI tracking, AXS will now record the query string in addition to the path in most cases. This makes it more in sync with the Javascript tracking, which always records the query string.
v2.3.0.0039 - 2003-11-17 - stable
Fixed bug in which the "Database Format" default value would not be saved on the Customize page.
Added "check all", "defaults", and "clear all" Javascript links to control the set of checkboxes for each graph type.
The "nslookup" link will appear in the "database format" listings for each IP address which was not looked up at the time the visit was logged.
v2.3.0.0038 - 2003-11-15 - stable
Fixed search-keyword parsing bug with Yahoo! referrers. AXS now properly extracts old and new styles of Yahoo straight searches, as well as Yahoo advanced searches. Previously only recognized old-style Yahoo straight searches.
Added standard
$::private{'PRINT_HTTP_STATUS_HEADER'}to ax-admin.pl script.Removed unneeded
$TransURLfrom ax.pl.Added detection of DOCUMENT_URI error condition, and work-around variable (help file)
Converted all code to be mod_perl-compatible (i.e., 'use strict').
Converted most script output to XHTML 1.0 Transitional; converted most layout to CSS.
Changed the way default graph selections are handled. Now the default graphs are automatically checked on start-up, so the user no longer needs to click the "Set Defaults" button. The "Set Defaults" and "Clear" buttons have been removed.
v2.3.0.0037 - 2003-10-17 - stable
Corrected handling of HTTP headers when hosted on Windows 2003 with IIS 6.0.
-
Removed $Admin_Email_Address from the admin page. Previously that screen displayed:
This script is operated by hostmaster@fdhost.com, or a third party reachable via that address. Contact them for help with usernames and passwords, or see this help file.Now reads simply:
Refer to this file for help with usernames and passwords.
v2.3.0.0036 - 2003-10-10 - stable
- AXS logged redirects now use "301 Moved Permanently" response code, instead of "302 Moved Temporarily".
- Fixed Perl -W warnings which appeared on various graph when there were 0 hits.
- Added context help link to "Links Followed" graph which appears when no results available.
v2.3.0.0035 - 2003-07-26 - stable
- On main ax-admin page, renamed "Graphing Filters" to just plain "Filters", to reflect the fact that they apply to both Graphs and Database listings.
- Fixed typo on main page of ax-admin; "from log entries with contain this string" to "from log entries which contain this string" (thanks Ron).
- Removed "use vars" line, which would cause an exception if the standard vars.pm library was missing or corrupt. Removed other unneeded code.
- The "login" and "delete-log" actions now always use the 'POST' request method, independent of the
$Request_Methodvariable.
v2.3.0.0034 - 2003-06-21 - stable
- Added link to ax-admin.pl?debugme to the bottom of the ax-admin Customize page.
- Changed default request method from 'POST' to 'GET'
- Fixed date-parsing bug in which "end date" range would be current day if a custom "end date" string were entered into Graphing Filters when either of checkboxes were also checked. The displayed end date in the summary would be the string entered, but the actual end date using in filtering would be the current day.
- Removed "use strict" pragma from ax.pl. The command was not error-trapped, and would cause hard-to-isolate internal server errors when strict.pm was not present.
- Fixed bug in which unhandled exception would be thrown when ax.pl attempted to change directory to the folder containing ax.pl, and the chdir() call failed.
v2.3.0.0033 - 2003-03-18 - stable
- Fixed spelling "refering" => "referring"
- Fixed bug in which, if the ListingsPerPage value were 0 or blank, then only one visitor would be show on the "Sort All by Visitor" and "Visitor Flow Only" listings.
- Corrected search-term parsing for Google Advanced Search and Google Image Search.
- The option "Compress web addresses that include pound signs" was removed from the admin page, since the script no longer logs the #frag fragment identifier any more.
- "Log Out" link now displayed both in header and footer, but only if the username/password option is enabled. Previously "Log Out" always appeared in the footer.
- Removed seldom-used crypt() login option.
- Fixed bug where "hour" had a 0-to-11 range in "AM/PM" mode, instead of 12,1-11. In "military-time" mode, the hour continues to have a 0-to-23 range.
- The experimental find_replace.pl utility has been added. This allows for automatically tagging many HTML files at once.
v2.3.0.0032 - 2003-01-05 - stable
- Changed help text on "tagging instructions" to warn about frameset documents and to suggest double-checking HTML text after uploading document. Removed suggestions for SSI tag.
- Updated tld.txt and related files for recognition of new TLD's like biz/aero/museum/etc and more second-level forms, like "ac.uk" == Academic - UK (thanks John R. Petrocelli).
v2.3.0.0031 - 2002-11-01 - stable
- Fixed bug in which the "ListingsPerPage" setting would cause a glitch if it had a zero or non-integer value. Now "0" is supported natively. Any existing settings that have non-integer values will be coerced to zero.
- Fixed bug in which checkboxes could not be checked from Netscape 7.0 with Javascript enabled.
- Fixed bug in which URL's would not be HTML-encoded when displayed. The bug of allowing un-escaped HTML could be exploited as a security hole in some rare cases. Therefore, all users should upgrade to this version.
v2.3.0.0030 - 2002-08-23 - stable
- Added multi-page-scrolling option to the "Database Format" view.
v2.3.0.0029 - 2002-08-22 - stable
- Fixed bug in which the $NumGraphLines variable was not being initialized for the graph "hits by day of year" and "unique visitors". Would lead to inaccurate graph summaries (thanks William).
v2.3.0.0028 - 2002-08-21 - stable
- Fixed bug in which the ax.pl?debugme output was not displayed when the file-system test failed
- When
$AllowDebug=0within ax.pl, requests to ax.pl?debugme will now return "Error: no output available because $AllowDebug = 0 in this script" instead of "e:\webroot\www.xav.com\axs\ax.pl - working okay - no logging command received - use ?debugme query string for more info". The new behavior is more accurate and also matches the behavior of the $AllowDebug variable in ax-admin.pl. - Added "return to ax-admin" link to the top of the ax.pl?debugme output.
v2.3.0.0027 - 2002-08-20 - stable
- Removed debug alert() in the Javascript date-parsing routine
- Fixed typo; was referring to "comma separated values" as "CVS" instead of "CSV" (thanks for everyone's help!) :)
v2.3.0.0026 - 2002-08-13 - stable
- Fixed bug whereby all Netscape 6.x browsers were reported as Netscape 6.0. Now properly lists Netscape 6.1, 6.2, etc.
- Now display minor version for Opera, i.e. Opera 6.03 instead of Opera 6.x.
- Fixed bug whereby operating system always appeared as 'Windows 16-bit' for Opera browser.
- Fixed bug on ax.pl?debugme screen that caused the system to erroneously claim that the filesystem test had failed.
- Added "Hits by Month" graph.
- Fixed Javascript date-parsing bug that would cause year "00" to be incorrectly interpreted as the current year.
- Fixed bug in LocalAddressTitlePairs for URL's which contain regex metacharacters like the question mark.
- Added more help text to make it easier to disable/enable webmaster logging.
- Added error-checking for writes to axs.dat; was causing "looping login" bug on system when physical disk filled up to the point that files could not be saved. Now will report proper error "unable to write to file - disk full".
- The link to "Instructions for Tagging HTML Pages" has been made more prominent. Will now appear at the top of the page when there are 0 hits logged.
v2.3.0.0025 - 2001-11-30 - stable
- Added support for detecting Windows XP. Investigated Mac OS X detection but found that OS X does not broadcast its version information, using only PowerPC as with earlier Macs.
- Removed all instances of NOBR; now use NOWRAP.
- Now list ".mil - Military" and ".uk - United Kingdom" instead of just ".mil" and ".uk"
- Data stored in "axs.dat" is now url-encoded. Fixes problem whereby saved "filter string" and "my_web_address" could not contain embedded pipes.
- Fixed handling of log records in which the remote-host field is null; now correctly use the remote-ip value in its place. Should reduce the frequency of "x data points were corrupt" messages.
- Added "export to CVS" option for graphs. Feature needs some work to make it more pretty.
- Field-truncation now properly applied to local URL's as well as all other fields.
- The parse_url subroutine now properly converts all hostnames to lowercase. Prevents psuedo-duplicate entries due to "http://XAV.com" and "http://xav.com".
- Added performance optimizations to the get_os and get_browser routines.
v2.3.0.0024 - 2001-08-28 - stable
Thanks go to Brian Renken for submitting many of these improvements.
- Added ability to "drill down" through browser types and operating system reports. For example, when viewing by browser, you can click on the name "Internet Explorer" and it will give a version breakdown, and you can click on a specific version, like "Internet Explorer 5.5", to get all the unique user agent strings.
- Now distributing the "convert.pl" script along with AXS. That script converts AXS logs to the industry-standard NCSA Extended format and vice versa. Useful for viewing AXS logs in other log analyzer products. The "convert.pl" utitlity can only be used from the command line, not the web.
- Changed graph "Day of Year" to not include zero-columns for days before the first hit, nor days after the last hit. Continues to show zero-columns between the first and last hit.
- Improved format of "Average Documents Per Visitor"; changed to use case-insensitive comparison in detecting local web pages.
- The $My_Web_Address and images URL are now updatable from the web interface, on the Customize page, rather than being hardcoded into the script.
- Added new graph "Web Browser Type" which breaks down between "Netscape", "Internet Explorer", etc., but does not show their versions.
- Expanded and improved the browser type and operating system detection algorithm
- Added
$resolve_dns_namesflag to ax.pl. This allows you to disable the automatic DNS lookups in ax.pl, which greatly improves performance (at the expense of knowing the DNS names of your visitors)
v2.3.0.0023 - 2001-08-21 - beta
- Added new setting to control maximum number of displayed characters; will prevent extremely long URL's or user agent strings from disrupting the graph
- Added explicit error message for when the initial chdir() call fails.
v2.3.0.0022 - 2001-06-13 - stable
- Fixed bug where the "perl execution error" bug report form would appear at the bottom of each ax-admin page, even though there were no visible execution errors
- Added error-checking to filter strings
- Rewrote line 535, which had caused the "=not" Perl execution error in old versions of Perl
v2.3.0.0021 - 2001-04-17 - stable
- Fixed typo in manual install instructions
v2.3.0.0020 - 2001-04-17 - stable
- Added error-trapping code to handle Perl execution errors in the code (divide by zero, etc.)
- Improved documentation on how to add logging code to HTML pages
- Fixed initialization bug whereby graphing both hits-by-day-of-year and hits-by-day-of-week would cause constructive interference in first 7 days of year.
- Fixed bug in "hits to local documents" so that files referenced by redirects would be included (i.e., ax.pl?http://server/file.ext).
v2.3.0.0019 - 2001-01-18 - stable
- Fixed date-parsing routines. Previously 1-1-01 had mapped to "1-1-1901" in some scenarios. Now two-digit years less than 50 will have 2000 added to them. Years from 50 to 999 will have 1900 added to them.
v2.3.0.0018 - 2001-11-30 - stable
- All HTML tags now reside on the same line, rather than being spread out onto multiple lines. Was causing rendering problems in a user's browser.
v2.3.0.0017 - 2000-11-29 - stable
To see lines that have changed, search for "changed 0017" in the ax.pl and ax-admin.pl files.
- Added HTML code >--#echo banner="" --< to the bottom of each output page, so that free webhost providers like Hypermart will show inline ads, rather than pop-up ads. This will have no effect on AXS installs on other webhost providers.
v2.3.0.0016 - 2000-10-13 - stable
To see lines that have changed, search for "changed 0016" in the ax.pl and ax-admin.pl files.
- AXS now recognizes the Windows Millenium operating system.
v2.3.0.0015 - 2000-10-12 - stable
To see lines that have changed, search for "changed 0015" in the ax.pl and ax-admin.pl files.
- Tweaked the fix in build 0014 to properly handle the "show database format" option.
v2.3.0.0014 - 2000-10-10 - stable
To see lines that have changed, search for "changed 0014" in the ax.pl and ax-admin.pl files.
- Added function html_encode to ax-admin.pl, and then called the function from many places. This fixes a security hole by which a malicious visitor can include HTML/script code in their user-agent string. The HTML/script would then be executed by the administrator's browser when the administrator viewed a list of user-agent strings. For example, the malicious user could set his user-agent string to "Netscape 4.x <script>alert('hello world');</script>". The message "Hello world" wouldu pop up for the AXS administrator. With the new fix, the admin will see the literal user-agent (fix thanks to Joshua Fraser and Daniel Von Fange)
v2.3.0.0013 - 2000-09-24 - stable
To see lines that have changed, search for "changed 0013" in the ax.pl and ax-admin.pl files.
- Added sentence to the summary information, telling the admin which sites are considered local and which are remote. This should alleviate confusion caused by invalid $My_Web_Address settings.
- Added option to use Military Time (i.e., 15:45 instead of 3:45 PM)
- Re-wrote hour/minute/second parsing routine, to correct for problem reports involving those functions.
- Added cookie-based method for avoiding logging webmaster visits. Setting a "no log" cookie to the webmaster's browser is a more accurate method than blocking logging on all IP address ranges reguluarly used by the webmaster.
v2.3.0.0012 - 2000-07-25 - stable
-
Redirects to sites that contained a ".gif" in their URL - like http://www.giftstore.co.uk - were failing. Now they work as expected.
Line 127 of ax.pl changed to:
elsif ($ENV{'QUERY_STRING'} =~ m!^(\w+)\.gif(\&ref=)?(.*)$!i) { - Improved data validation in ax-admin.pl. Now any line of the log which doesn't correctly pattern match as a record will be skipped, rather than risk the introduction of corrupt data. The ax.pl script has also been improved to strip out corrupt characters before writing to the log.
- Added URL-parsing code to ax.pl. Now, records which contain invalid URL's will not be logged, and also extra dots in pathnames will be stripped (i.e., http://xav.com/./foo/../bar.txt will be translated to it's proper name, http://xav.com/bar.txt, before being written to the log.
- An AXS user has contributed a PHP3 version of ax.pl, for logging from PHP pages. The Perl ax-admin.pl script is still required. The PHP script is available from the main AXS page.
v2.3.0.0011 - 2000-06-28 - stable
- Function show_data() fixed. Previously the database listings would include entries like "visit from www. (1.2.3.4)", where only the first part of the hostname "www." was present instead of the full string. The fix was to rename variable $Host in &show_data to $VisitHost.
v2.3.0.0010 - 2000-05-10 - stable
- All filehandles now have the binmode() function run against them. This prevents the script from treating binary nulls as end-of-file markers. Previously users would see their graphs stop appearing if the log file became corrupted with binary data.
- Replaced the Network Solutions whois script with the AXS whois script. The AXS script is more versatile, providing info on .edu, .mil, .gov, and international domains, as well as .com/.net/.org names that are register with companies other than Network Solutions.
- Used empty @IgnoreHosts array by default. Previously the array contained some example strings, including .mil and .gov, that caused many hits to not be counted.
- ax.pl now recognizes SSI calls by having the DOCUMENT_URI *or* REQUEST_URI variable populated (previously only DOCUMENT_URI was recognized).
- All reverse DNS names are translated to lowercase, not just resolved names, and the operation now uses Perl's built-in lc function.
- All upper-case or lower-case operations use the proper lc/uc functions for compatibility with non-English alphabets and better speed.
v2.3.0.0009 - 2000-05-02 - stable
- Changed FormatDates function to parse end date filters correctly. Years given in two digits, where the year is less than 50, will have 2000 added to them. Previously all two digit years had 1900 added to them. Thus, "2-15-00" was mapping to "2-15-1900"; now it maps correctly to "2-15-2000".
v2.3.0.0008 - 2000-02-04 - stable
- Removed style background-color:#ffffff from all the submit buttons; this was causing the text to not appear in Internet Explorer 5.01.
- Changed "Hits by Day of Year" to include Feb 29.
- Added the concept of "mappings" to the ax.pl script. Mappings are a set of find-and-replace operations that happen on the To and From web addresses before they are logged. These allow, among other things, a user to map all local URL's to a consistent format if her site has different names, like http://xav.com/ and http://www.xav.com/. In this example, a mapping from "http://xav.com" to "http://www.xav.com" is added, and then all hits to local documents will be grouped correctly.
- The "special NT version" of AXS is not longer linked from the main web page. Version 2.3.x should work equally well on all platforms.
- Removed extra </BLOCKQUOTE> tag from the ax-admin.pl script, in the PrintPage function.
v2.3.0.0007 - 2000-02-01 - stable
- Removed line 1913 of ax-admin.pl, containing the text "print "$_<BR>\n";". This was a debug print statement that should not have been in the release version. This was causing garbage characters to show up when viewing abbreviated browser versions, and in some other views.
- Fixed typo where keyword "unless" was replaced by "if" near line 1416 of ax-admin.pl. This caused the "Hits to Local Documents" to not show up in the latest version.
v2.3.0.0006 - 2000-01-26 - stable
- Fixed bug where no hits would be logged if the $MaxLogSize variable was set to anything other than 0.
- Added better documentation on the AXS debug flags. The fix was to replace a greater-than sign with a less-than sign near line 126 of ax.pl - code is "exit if ($MaxLogSize < $LogSize);".
- Added Opera and Proxy/Cache server to the list of abbreviated browser names; fixed bug whereby all AOL browser users were being treated as Internet Explorer users.
- Added better documention and script support for the "Links from Other Sites" and "Hyperlinks Followed" problems. Previously, if the HTTP_HOST variable was undefined, then no data would show up in the Links from Other Sites view. Now, if HTTP_HOST is undefined, then all hits will be show as links from other sites, even if the links are from the local site. The docs have been updated for how to defined HTTP_HOST on servers where it is undefined.
v2.3.0.0005 - 2000-01-08 - stable
- Re-instated the feature which shows the total number of hits on the main page.
- Fixed bug with the link to Network Solution's Whois page.
v2.3.0.0004 - 2000-01-08 - stable
- Fixed date parsing problems when interpreting user-defined short dates. Now, any year in the range 50 to 1000 will have 1900 added to it; i.e., "89" becomes "1900 + 89 = 1989". Any year in the range 0 to 49 will have 2000 added to it; thus "00" is interpreted as "2000". Years above 1000 are taken literally. (Change affected the FormatDates function.)
- The regular expressions for backtracking search engine referers were failing horribly under Perl 4. I resolved the issues by using the // syntax instead of m!!, and by replacing .*? with .*. (Changed affected the url_format function.)
- The command "local $_ = shift" was re-written as "local($_) = shift" to gain Perl 4 compatibility. (Change affected the get_os_type and get_browser_name functions.)
- Updated WHOIS server to point to correct Network Solutions location. There may be a better update on this later, since the Network Solutions server does not resolve gov, mil, us, or international top level domains.
- Changed the variable $Version to match the $VERSION declared in header (case sensitivity issue).
- Restructed the summary text that confirms log file deletion succeeded; under certain circumstances this was being malformed.
v2.3.0.0003 - 2000-01-02 - stable
- Fixed Y2K display bug. The summary information was showing "restricted to hits occurring... until Jan 1, 100" instead of "Jan 1, 2000". The fix was to replaced all "if ($Year < 100)" clauses with "if ($Year < 1000)".
- Removed the keyword "my" from the 0002 fix (caused problems on Perl 4 machines).
v2.3.0.0002 - 2000-01-01 - stable
- Fixed Y2K display bug. The display of records when viewing "Visitor Flow" showed the year as "19100" instead of "2000". The problem is isolated to the display of data, not the storage of data, so as soon as the fix is installed then the problem will go away, and all past records will be displayed correctly. (The fix was on line 1722; instead of using "19$terms[11]" as a string, a variable named $FullYear is assigned "1900 + $terms[11]", and then that variable is interpolated.)
- Copyright display updated to show 1997-2000 rather than 1997-1999.
v2.3.0.0001 - 1999-11-15 - stable
- Added strict versioning to the script file, starting with version 2.3.0.0001.
- Can now recognize Windows 2000; also improved Windows 98 recognition
- For Netscape, now reports subversions like "4.5" and "4.6" rather than treating them all as "4.x". This was done because Netscape has done so much work on their 4.x series.
- Investigated common problem report whereby IP addresses are not being resolved to hostnames. Not able to reproduce the problem, but did clean up the IP resolution code in ax.pl just in case.
- Fixed date range bug in "sub make_stats_year", where days were calculated from 0 to 365 instead of 0 to 364. This was causing "December 32" to show up in the list of days of the year.
v2.2c - 1997-11-04 - stable
- Increased JavaScript for better forms handling
- Correct array-resetting code to prevent some graphics viewing problems
- Improved error codes
- Tighter loop structures for faster execution
- Ability to specify GET or POST method of triggering
- Ability to open links in a new browser window
v2.1.0.0000 - 1997-06-28 - stable
- Cool AXS graphics have been provided
- A minor bug causing the background and headers to sometimes disappear has been fixed
- Filename filtering now works
- The "Average Documents" report now allows for filename and date filtering
- Database reports now correctly filter with "L" for "since last visit"
- The low hit, wide graph error that occurred with large databases has been corrected
- Image caching problems with the redirect method have been greatly reduced
- Testing on NCSA servers has been done
- Additional testing on IIS 3.0 has been done, specifically with SSI tags
- Search URL translation has been added for Infoseek and Excite
- Three perl -w errors have been isolated and fixed
Older versions of AXS
AXS Version 2.0 (released sometime in May '97) was a complete rewrite of the script, and is not compatible with old databases. If you are upgrading from an earlier version that works, we strongly recommend that you test the script on a dummy directory before deleting the old.
The new version should fix some anomalous mathematical results that appeared on some systems. It also fixes some time offsets. The fatal errors created when making graphs on an empty log file have been removed. The error involving empty "ignore" arrays has been fixed. The script now checks to make sure that the log and preferences files are present, which should provide some good trouble-shooting information. The logging module now executes about twice as fast, reducing the chance of data corruption. The nslookup module has been recoded to allow compatibility with Windows NT and generally speed things up.
A fairly detailed preferences-on-the-fly system customizes the interface based on browser usage and visitor requests. The preferences can be changed within AXS, allowing immediate optimized usage by various people on various platforms.
Users now have the ability to create database-style listings of visits, and track individual visitor's path over a period of weeks or months. Multiple graphs per session are now possible, and more graph options have been added. The "mail log file" option has been removed as unnecessary.
An un-numbered revision as of May 29, 1997 corrects for a one-day offset error in date filtering.
AXS was originally released in December of 1996.