Crucible 2.7 : Enabling Access Logging in Crucible

Steps

  • Stop Fisheye/Crucible,
  • and then create the file FISHEYE_HOME/content/WEB-INF/jetty-web.xml with the following content:
<?xml version="1.0"  encoding="ISO-8859-1"?>
<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://www.eclipse.org/jetty/configure.dtd">

<Configure class="org.mortbay.jetty.webapp.WebAppContext">
	<Call name="addHandler">
		<Arg>
			<New class="com.cenqua.fisheye.web.jetty.FishEyeRequestLogHandler">
			<Set name="requestLog">
				<New id="RequestLogImpl" class="org.mortbay.jetty.NCSARequestLog">
					<Arg><SystemProperty name="jetty.logs" default="../var/log"/>/fisheye-access.log.yyyy_mm_dd</Arg>
					<Set name="retainDays">90</Set>
					<Set name="append">true</Set>
					<Set name="extended">false</Set>
					<Set name="LogTimeZone">GMT</Set>
				</New>
			</Set>
			</New>
		</Arg>
	</Call>
</Configure>
  • Restart Fisheye/Crucible.

This will create an access log in FISHEYE_HOME/var/log/fisheye-access.log.yyyy_mm_dd format (e.g. fisheye-access.log.2010_03_17). If you want to change the path to your FISHEYE_INST directory, change the default="../var/log" to the path to the log folder in FISHEYE_INST.

The log directory must exist

If the path to the log directory given by the default attribute of the SystemProperty tag (defined in the line 10 in the jetty-web.xml above) does not exist, then FishEye will fail to start and will not log any error message.

The path given in the example below is correct when FISHEYE_INST and FISHEYE_HOME are the same directory, otherwise please use the absolute path of your FISHEYE_INST/var/log directory.

Log format

The logs are written in NCSA format:

172.20.5.186 -  -  [17/Mar/2010:22:50:21 +0000] "GET /fe/commitSparkline.do?w=280&h=48&context=repository&repname=TestRepo&outputtype=image HTTP/1.1" 200 256
172.20.5.186 -  -  [17/Mar/2010:22:50:21 +0000] "GET /fe/commitSparkline.do?w=280&h=48&context=repository&repname=npanday&outputtype=image HTTP/1.1" 200 177
172.20.5.186 -  -  [17/Mar/2010:22:50:21 +0000] "GET /fe/commitSparkline.do?w=280&h=48&context=repository&repname=jutils&outputtype=image HTTP/1.1" 200 775
172.20.5.186 -  -  [17/Mar/2010:22:50:21 +0000] "GET /fe/commitSparkline.do?w=280&h=48&context=repository&repname=P4&outputtype=image HTTP/1.1" 200 177
172.20.5.186 -  -  [17/Mar/2010:22:50:21 +0000] "GET /fe/commitSparkline.do?w=280&h=48&context=repository&repname=Rails&outputtype=image HTTP/1.1" 200 1311
172.20.5.186 -  -  [17/Mar/2010:22:50:22 +0000] "GET /fe/commitSparkline.do?w=280&h=48&context=repository&repname=FE-2363&outputtype=image HTTP/1.1" 200 128 

Please refer to the Jetty documentation for more configuration options.

Compatibility

If you are using an earlier version of FishEye than FishEye 2.7.8, replace com.cenqua.fisheye.web.jetty.FishEyeRequestLogHandler by org.mortbay.jetty.handler.RequestLogHandler.

FishEyeRequestLogHandler was added in 2.7.8 to fix an issue where the user credentials would not be added to the NCSA log: FE-3040.