50 lines
2.1 KiB
Plaintext
50 lines
2.1 KiB
Plaintext
[[gc-logging]]
|
|
=== GC logging
|
|
|
|
By default, {es} enables GC logs. These are configured in
|
|
<<jvm-options,`jvm.options`>> and output to the same default location as
|
|
the {es} logs. The default configuration rotates the logs every 64 MB and
|
|
can consume up to 2 GB of disk space.
|
|
|
|
You can reconfigure JVM logging using the command line options described in
|
|
https://openjdk.java.net/jeps/158[JEP 158: Unified JVM Logging]. Unless you
|
|
change the default `jvm.options` file directly, the {es} default
|
|
configuration is applied in addition to your own settings. To disable the
|
|
default configuration, first disable logging by supplying the
|
|
`-Xlog:disable` option, then supply your own command line options. This
|
|
disables __all__ JVM logging, so be sure to review the available options
|
|
and enable everything that you require.
|
|
|
|
To see further options not contained in the original JEP, see
|
|
https://docs.oracle.com/en/java/javase/13/docs/specs/man/java.html#enable-logging-with-the-jvm-unified-logging-framework[Enable
|
|
Logging with the JVM Unified Logging Framework].
|
|
|
|
==== Examples
|
|
|
|
* Change the default GC log output location to `/opt/my-app/gc.log` by
|
|
creating `$ES_HOME/config/jvm.options.d/gc.options` with some sample
|
|
options:
|
|
+
|
|
[source,shell]
|
|
--------------------------------------------
|
|
# Turn off all previous logging configuratons
|
|
-Xlog:disable
|
|
|
|
# Default settings from JEP 158, but with `utctime` instead of `uptime` to match the next line
|
|
-Xlog:all=warning:stderr:utctime,level,tags
|
|
|
|
# Enable GC logging to a custom location with a variety of options
|
|
-Xlog:gc*,gc+age=trace,safepoint:file=/opt/my-app/gc.log:utctime,pid,tags:filecount=32,filesize=64m
|
|
--------------------------------------------
|
|
|
|
* Configure an {es} <<docker,Docker container>> to send GC debug logs to
|
|
standard error (`stderr`). This lets the container orchestrator
|
|
handle the output. If using the `ES_JAVA_OPTS` environment variable,
|
|
specify:
|
|
+
|
|
[source,sh]
|
|
--------------------------------------------
|
|
MY_OPTS="-Xlog:disable -Xlog:all=warning:stderr:utctime,level,tags -Xlog:gc=debug:stderr:utctime"
|
|
docker run -e ES_JAVA_OPTS="$MY_OPTS" # etc
|
|
--------------------------------------------
|