JHttpLog is a reusable library that provides extended logging of HTTP information, more than that provided by your web server. All basic information from a HTTP request and extended information are collected and stored into a database.

A HTTP Server typically logs all basic information such as remote IP address, date and time, request line etc., as well as referrer and user agent. However, many information information are not logged, for example, the preferred locale setting of the users' browser. As an example of practical use, by collecting the preferred locale data and statistics, it helps to define the internationalization strategy of a website, say, if it is analyzed that half of the users use English, and another half of the users prefer to use Chinese, it indicates there is a strong need to internationalize the site to provide two both Chinese and English languages.

Some major difference between JHttpLog and web server logging are: [this is not a complete list yet ]

JHttpLog Web Server Log
Frequency per session per hit
Record of RFC2068 All Partial (e.g. referrer, user agent)
Address resolution *resolve real geographical data reverse lookup (optional)
Repository database log file (by default)
Integrate and Interact with User Profile Yes No

*As an optional features, either work with a commercial library or to look up source of Internet address organizations


The objective of this project is to provide a Java library to collect all possible user information. This is an useful feature for every web development project.

In order to archive the objective of collecting all information. Not only server side Java library but also client side components, for example, JavaScript, Java Applet and ActiveX are required. For example, using JavaScript to determine window size. This will be implemented as an optional feature.