This documentation relates to an earlier version of FishEye.
View

Unknown macro: {spacejump}

or visit the current documentation home.

手順

  • 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.

ログ形式

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.

4 Comments

  1. Anonymous

    This does not work. If jetty-web.xml is present, the follow error is thrown at startup:

    17:00:55 ERROR - Could not start DefaultReviewItemIndexer schedule: Application Context not initialised.
    java.lang.RuntimeException: Application Context not initialised.
        at com.cenqua.fisheye.config.SpringContext.getApplicationContext(SpringContext.java:34)
        at com.cenqua.fisheye.config.SpringContext.getComponentByClass(SpringContext.java:73)
        at com.atlassian.crucible.activity.lucene.DefaultReviewItemIndexer.doStart(DefaultReviewItemIndexer.java:599)
        at com.cenqua.fisheye.ctl.Run.mainImpl(Run.java:244)
        at com.cenqua.fisheye.ctl.Run.main(Run.java:69)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at com.cenqua.fisheye.FishEyeCtl.mainImpl(FishEyeCtl.java:113)
        at com.cenqua.fisheye.FishEyeCtl.main(FishEyeCtl.java:41)
    17:00:55 WARN  - Problem starting repository
    java.lang.RuntimeException: Application Context not initialised.
        at com.cenqua.fisheye.config.SpringContext.getApplicationContext(SpringContext.java:34)
        at com.cenqua.fisheye.config.SpringContext.getComponentByClass(SpringContext.java:73)
        at com.cenqua.fisheye.rep.RepositoryHandle.getIndexingContext(RepositoryHandle.java:572)
        at com.cenqua.fisheye.rep.RepositoryHandle.run(RepositoryHandle.java:306)
        at com.cenqua.fisheye.config.DefaultRepositoryManager.runRepository(DefaultRepositoryManager.java:259)
        at com.cenqua.fisheye.config.DefaultRepositoryManager.runRepositories(DefaultRepositoryManager.java:287)
        at com.cenqua.fisheye.config.RootConfig.startRepositories(RootConfig.java:494)
        at com.cenqua.fisheye.ctl.Run.mainImpl(Run.java:248)
        at com.cenqua.fisheye.ctl.Run.main(Run.java:69)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at com.cenqua.fisheye.FishEyeCtl.mainImpl(FishEyeCtl.java:113)
        at com.cenqua.fisheye.FishEyeCtl.main(FishEyeCtl.java:41)
    17:00:55 ERROR - Could not start quartz schedule: Application Context not initialised.
    java.lang.RuntimeException: Application Context not initialised.
        at com.cenqua.fisheye.config.SpringContext.getApplicationContext(SpringContext.java:34)
        at com.cenqua.fisheye.config.SpringContext.getComponent(SpringContext.java:65)
        at com.cenqua.fisheye.ctl.Run.mainImpl(Run.java:252)
        at com.cenqua.fisheye.ctl.Run.main(Run.java:69)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at com.cenqua.fisheye.FishEyeCtl.mainImpl(FishEyeCtl.java:113)
        at com.cenqua.fisheye.FishEyeCtl.main(FishEyeCtl.java:41)

    1. Anonymous

      I am also receiving the same error with the new xml in place.

      1. Pierre-Etienne Poirot

        Hi, check if you see the following error just above, in the log:

        java.io.IOException: Cannot write log directory /path/to/fisheye/var/log

        If this is the error, verify that the directory exists, and that the user under which FishEye is running has write access to that directory:

        sudo -u fisheyeuser touch /path/to/fisheye/var/log/testwrite.txt
  2. Anonymous

    Yes. This  does not seem to be working. Any help is highly appreciated. Should this file be somewhere else?