Yes, you're getting empty files, until you know you need to check the option
in two places...
See instructions in
http://www-1.ibm.com/support/docview.wss?rs=180&uid=swg1PK24036 and in the
InfoCenter
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r0/topic/com.ibm.websphere.express.doc/info/exp/ae/utrb_httperrlogs.html.
Now, this was the "easy" part... :-)
It's getting tricky because, you need to activate it on the Dmgr Application
Server.
However, IBM purposely made it not visible in the Administrative Console, so
you don't mess with it.
But you still can via scripting... :-)
Here is a wsadmin script to do it.
There is a dirty hack because I couldn't figure out better.
set dmgrid [$AdminConfig getid /Server:dmgr/]
set dmgr [$AdminConfig list Server $dmgrid]
set http [$AdminConfig list HTTPAccessLoggingService $dmgr]
$AdminConfig modify $http {{enable true}}
puts [$AdminConfig show $http]
# Dirty because assumed the first HTTP_2 of the list of the dmgr
set http_2 [lindex [$AdminConfig getid /TransportChannel:HTTP_2/] 0]
$AdminConfig show $http_2
$AdminConfig modify $http_2 {{enableLogging true}}
puts ""
puts [$AdminConfig show $http_2]
$AdminConfig save
It will output the configuration so you can verify it's enabled ("enable
true" and "enabledLogging true"):
C:\WebSphere\AppServer\profiles\Dmgr01\bin>wsadmin -f "C:\temp\HTTP-NCSA
log.jacl"
WASX7209I: Connected to process "dmgr" on node CellManager01 using SOAP
connector; The type of process is: DeploymentManager
{accessLog
(cells/Cell01/nodes/CellManager01/servers/dmgr|server.xml#LogFile_2)}
{accessLogFormat COMMON}
{context
dmgr(cells/Cell01/nodes/CellManager01/servers/dmgr|server.xml#Server_1)}
{enable true}
{enableAccessLogging true}
{enableErrorLogging true}
{errorLog
(cells/Cell01/nodes/CellManager01/servers/dmgr|server.xml#LogFile_1)}
{errorLogLevel WARNING}
{properties {}}
{discriminationWeight 10}
{enableLogging true}
{keepAlive true}
{maximumPersistentRequests 100}
{name HTTP_2}
{persistentTimeout 30}
{properties {}}
{readTimeout 60}
{writeTimeout 60}
Now after all this effort (and a restart of dmgr), you get an
http_access.log with what people have accessed as pages in the
Administrative Console.
The pitty is that the user id is not logged. This is because form based
authentication is used and the user field in the NCSA log is for the HTTP
basic authentication user info.
Still better than nothing:
127.0.0.1 - - [30/Apr/2008:18:24:02 +0200] "GET /ibm/console HTTP/1.1" 302 5
127.0.0.1 - - [30/Apr/2008:18:24:06 +0200] "GET /ibm/console/ HTTP/1.1" 302
1002
127.0.0.1 - - [30/Apr/2008:18:24:17 +0200] "GET
/ibm/console/login.do?action=secure HTTP/1.1" 200 1199
127.0.0.1 - - [30/Apr/2008:18:24:17 +0200] "GET
/ibm/console/css/ISCTheme/ie/en/Styles.css HTTP/1.1" 304 0
127.0.0.1 - - [30/Apr/2008:18:24:17 +0200] "GET
/ibm/console/secure/isclite/tiles/bannerframe.jsp HTTP/1.1" 200 2254
127.0.0.1 - - [30/Apr/2008:18:24:18 +0200] "GET
/ibm/console/images/iscbannerLeft-.gif HTTP/1.1" 304 0
127.0.0.1 - - [30/Apr/2008:18:24:18 +0200] "GET
/ibm/console/images/toolbar_separator.gif HTTP/1.1" 304 0
127.0.0.1 - - [30/Apr/2008:18:24:18 +0200] "GET
/ibm/console/images/iscbanner-mosaic.gif HTTP/1.1" 304 0
127.0.0.1 - - [30/Apr/2008:18:24:18 +0200] "GET /ibm/console/nsc.do
HTTP/1.1" 200 46124
127.0.0.1 - - [30/Apr/2008:18:24:18 +0200] "GET
/ibm/console/images/isclite/dot.gif HTTP/1.1" 304 0
127.0.0.1 - - [30/Apr/2008:18:24:18 +0200] "GET
/ibm/console/images/title_maximize.gif HTTP/1.1" 304 0
127.0.0.1 - - [30/Apr/2008:18:24:18 +0200] "GET
/ibm/console/images/isclite/grpfilter_background.gif HTTP/1.1" 304 0
127.0.0.1 - - [30/Apr/2008:18:24:18 +0200] "GET
/ibm/console/navigation.do?wpageid=com.ibm.isclite.welcomeportlet.layoutElement.A&moduleRef=com.ibm.isclite.ISCAdminPortlet
HTTP/1.1" 200 11018
Now you know the IP address of the people accessing the Administrative
Console.
HTH.