= Gerrit Code Review - Logs

Gerrit writes log files in the `$site_path/logs/` folder tracking requests,
background and plugin activity and errors. By default logs are written in
link:config-gerrit.html#log.textLogging[text format], optionally in
link:config-gerrit.html#log.jsonLogging[JSON format].
By default log files are link:config-gerrit.html#log.compress[compressed]
at server startup and then daily at 11pm and
link:config-gerrit.html#log.rotate[rotated] every midnight.

== Time format

For all timestamps the format `[yyyy-MM-dd'T'HH:mm:ss,SSSXXX]` is used.
This format is both link:https://www.w3.org/TR/NOTE-datetime[ISO 8601] and
link:https://tools.ietf.org/html/rfc3339[RFC3339] compatible.

== Logs

The following logs can be written.

=== HTTPD Log

The httpd log tracks HTTP requests processed by Gerrit's http daemon
and is written to `$site_path/logs/httpd_log`. Enabled or disabled via the
link:config-gerrit.html#httpd.requestLog[httpd.requestLog] option.

Format is an enhanced
link:https://httpd.apache.org/docs/2.4/logs.html#combined[NCSA combined log],
if a log field is not present, a "-" is substituted:

* `host`: The IP address of the HTTP client that made the HTTP resource request.
  If you are using a reverse proxy it depends on the proxy configuration if the
  proxy IP address or the client IP address is logged.
* `[thread name]`: name of the Java thread executing the request.
* `remote logname`:  the identifier used to
  link: https://tools.ietf.org/html/rfc1413[identify the client making the HTTP request],
  Gerrit always logs a dash `-`.
* `username`: the username used by the client for authentication. "-" for
  anonymous requests.
* `[date:time]`: The date and time stamp of the HTTP request.
  The time that the request was received.
* `request`: The request line from the client is given in double quotes.
** the HTTP method used by the client.
** the resource the client requested.
** the protocol/version used by the client.
* `statuscode`: the link:https://tools.ietf.org/html/rfc2616#section-10[HTTP status code]
  that the server sent back to the client.
* `response size`: the number of bytes of data transferred as part of the HTTP
  response, not including the HTTP header.
* `latency`: response time in milliseconds.
* `referer`: the `Referer` HTTP request header. This gives the site that
  the client reports having been referred from.
* `client agent`: the client agent which sent the request.
* `total_cpu`: total CPU time, CPU time in milliseconds to execute command.
* `user_cpu`: user mode CPU time, CPU time in user mode in milliseconds to execute command.
  CPU time in kernel mode is `total_cpu - user_cpu`.
* `memory`: memory allocated in bytes to execute command. -1 if the JVM does
  not support this metric.
* `command status`: the overall result of the git command over HTTP. Currently
   populated only for the transfer phase of `git-upload-pack` commands.
   Possible values:
** `-2`: The `git-upload-pack` transfer was interrupted or blocked
** `-1`: The `git-upload-pack` transfer was ultimately not successful
** `0`: The `git-upload-pack` transfer was ultimately successful

Example:
```
12.34.56.78 [HTTP-4136374] - johndoe [28/Aug/2020:10:02:20 +0200] "GET /a/plugins/metrics-reporter-prometheus/metrics HTTP/1.1" 200 1247498 1900 - "Prometheus/2.13.1"
```

=== SSHD Log

The sshd log tracks ssh requests processed by Gerrit's ssh daemon
and is written to `$site_path/logs/sshd_log`. Enabled or disabled
via option link:config-gerrit.html#sshd.requestLog[sshd.requestLog].

Log format:

* `[date time]`: The time that the request was received.
* `sessionid`: hexadecimal session identifier, all requests of the
  same connection share the same sessionid. Gerrit does not support multiplexing multiple
  sessions on the same connection. Grep the log file using the sessionid as filter to
  get all requests from that session.
* `[thread name]`: name of the Java thread executing the request.
* `username`: the username used by the client for authentication.
* `a/accountid`: identifier of the Gerrit account which is logged on.
* `operation`: the operation being executed via ssh.
** `LOGIN FROM <host>`: login and start new SSH session from the given host.
** `AUTH FAILURE FROM <host> <message>`: failed authentication from given host and cause of failure.
** `LOGOUT`: logout and terminate SSH session.
** `git-upload-pack.<projectname>`: git fetch or clone command for given project.
** `git-receive-pack.<projectname>`: git push command for given project.
** Gerrit ssh commands which may be logged in this field are documented
   link:cmd-index.html#_server[here].
* `wait`: command wait time, time in milliseconds the command waited for an execution thread.
* `exec`: command execution time, time in milliseconds to execute the command.
* `status`: status code. 0 means success, any other value is an error.
* `total_cpu`: total CPU time, CPU time in milliseconds to execute command.
* `user_cpu`: user mode CPU time, CPU time in user mode in milliseconds to execute command.
  CPU time in kernel mode is `total_cpu - user_cpu`.
* `memory`: memory allocated in bytes to execute command. -1 if the JVM does
  not support this metric.

The `git-upload-pack` command provides the following additional fields after the `exec`
and before the `status` field. All times are in milliseconds. Fields are -1 if not available
when the upload-pack request returns an empty result since the client's repository was up to date:

* `time negotiating`: time for negotiating which objects need to be transferred.
* `time searching for reuse`: time jgit searched for deltas which can be reused.
  That is the time spent matching existing representations against objects that
  will be transmitted, or that the client can be assumed to already have.
* `time searching for sizes`: time jgit was searching for sizes of all objects that
  will enter the delta compression search window. The sizes need to
  be known to better match similar objects together and improve
  delta compression ratios.
* `time counting`: time jgit spent enumerating the objects that need to
  be included in the output. This time includes any restarts that
  occur when a cached pack is selected for reuse.
* `time compressing`: time jgit was compressing objects.  This is observed
  wall-clock time and does not accurately track CPU time used when
  multiple threads were used to perform the delta compression.
* `time writing`: time jgit needed to write packfile, from start of
  header until end of trailer. The transfer speed can be
  approximated by dividing `total bytes` by this value.
* `total time in UploadPack`: total time jgit spent in upload-pack.
* `bitmap index misses`: number of misses when trying to use bitmap index,
  -1 means no bitmap index available. This is the count of objects that
  needed to be discovered through an object walk because they were not found
  in bitmap indices.
* `total deltas`: total number of deltas transferred. This may be lower than the actual
  number of deltas if a cached pack was reused.
* `total objects`: total number of objects transferred. This total includes
  the value of `total deltas`.
* `total bytes`: total number of bytes transferred. This size includes the pack
  header, trailer, thin pack, and reused cached packs.
* `client agent`: the client agent and version which sent the request.

Example: a CI system established a SSH connection, sent an upload-pack command (git fetch) and closed the connection:
```
[2020-08-28 11:00:01,391 +0200] 8a154cae [sshd-SshServer[570fc452]-nio2-thread-299] voter a/1000023 LOGIN FROM 12.34.56.78
[2020-08-28 11:00:01,556 +0200] 8a154cae [SSH git-upload-pack /AP/ajs/jpaas-msg-svc.git (voter)] voter a/1000056 git-upload-pack./demo/project.git 0ms 115ms 92ms 1ms 0ms 6ms 0ms 0ms 7ms 3 10 26 2615 0 git/2.26.2
[2020-08-28 11:00:01,583 +0200] 8a154cae [sshd-SshServer[570fc452]-nio2-thread-168] voter a/1000023 LOGOUT
```

=== Error Log

The error log tracks errors and stack traces and is written to
`$site_path/logs/error_log`.

Log format:

* `[date time]`: The time that the request was received.
* `[thread name]`: : name of the Java thread executing the request.
* `level`: log level (ERROR, WARN, INFO, DEBUG).
* `logger`: name of the logger.
* `message`: log message.
* `stacktrace`: Java stacktrace when an exception was caught, usually spans multiple lines.

=== GC Log

The gc log tracks git garbage collection running in a background thread
if enabled and is written to `$site_path/logs/gc_log`.

Log format:

* `[date time]`: The time that the request was received.
* `level`: log level (ERROR, WARN, INFO, DEBUG).
* `message`: log message.

=== Plugin Logs

Some plugins write their own log file.
E.g. the replication plugin writes its log to `$site_path/logs/replication_log`.
Refer to each plugin's documentation for more details on their logs.

GERRIT
------
Part of link:index.html[Gerrit Code Review]

SEARCHBOX
---------
