Sending logs

When receiving support for JRebel, you will likely be asked for the JRebel log file (jrebel.log). Here are the instructions on how to find and send this file.

Note

The log file will be overwritten every time a logging, JRebel-enabled VM is started.


How to generate the log file?

JRebel logging features three levels:

  • Off – JRebel logging is disabled. Add -Drebel.log=false to disable logging.

  • Info (Default) – Information level logging. Enabled by adding -Drebel.log=true to your VM arguments, or enabling this from the JRebel IDE plugin settings. When asked for the jrebel.log file, this level should usually be enabled. This logging level has a minor impact on performance.

  • Debug – Debug level logging. Enabled by adding -Drebel.log=debug. This log includes a more detailed level of events.

  • Trace – Trace level logging. Enabled by adding -Drebel.log=trace to your VM arguments or enabling it from the JRebel IDE plugin settings. This is the highest detail level logging method. Has a medium impact on performance.

In addition, you can enable performance logging:

  • Performance logging – Enabled by adding -Drebel.log.perf=true to your VM arguments. Add this flag when you are having performance issues. Carries a high impact on performance.

Once you have enabled logging, restart your application or server and reproduce the issue that was relevant for your support case.


Where is the log file stored?

The jrebel.log file is stored in the $USER_HOME/.jrebel/ directory by default.

This location can be overridden by adding -Drebel.log.file=/path/to/jrebel.log to your VM arguments. When rebel.base has been configured, the log file is stored in its specified location.


How to configure JRebel logging from IDE?

IDE plugins allow selecting logging levels from within the configuration.


Eclipse

  1. Open Help > JRebel > Configuration > Advanced.

  2. Set Logging Level to: Off/Info/Trace.

  3. Enable Performance log (slow) when you experience performance issues.

Tip

This method also applies to MyEclipse and IBM Rational Application Developer.


IntelliJ IDEA

  1. Open Help > JRebel > Configuration > Advanced.

  2. Set JRebel agent log level to: Off/Info/Trace.

  3. Enable Agent performance log (slow) when you experience performance issues.


NetBeans

  1. Open Tools > Options > JRebel > Advanced.

  2. Set Logging to: Off/Info/Trace.

  3. Enable Performance log (slow) when you experience performance issues.


JDeveloper

  1. Open Tools > Settings > JRebel.

  2. Set Logging Level to: Off/Info/Trace.

  3. Enable Performance log (slow) when you experience performance issues.


Visual Studio Code

  1. Open JRebel > Workspace Settings > Advanced Settings > Logging.

  2. Set Logging to: Off/Error/Warn/Info/Debug/Trace.

  3. Enable Performance log (slow) when you experience performance issues.


Which log level should you choose?

JRebel Support will let you know which logging level to use based on your problem. Most customer problems are solved using the trace level logs.


Where do I send the log file?

  • When asked for a JRebel log during private email support, attach the file to your email.

  • When asked for a JRebel log on a Stack Overflow thread, send the log to support-rebel@perforce.com. Make sure to copy and paste the link to the relevant forum thread into your message body. The support team can then easily connect your case with the log file.

Note

Please ZIP the log file before sending to conserve server resources.


Additional information

Before sending the log file, confirm that it is not truncated (smaller than 2 KB). When you have recorded a log file for a session that reproduces your issue, be aware that restarting your application/server or launching another VM with JRebel might overwrite your log file. When the log file is constantly overwritten, it is helpful to add -Drebel.log.file=/path/to/jrebel{time}.log to your VM arguments list. This will force the JRebel log filename to reference the time stamp for when the VM was started – ensuring a unique log file name.

Sending the server/application log alongside with the jrebel.log is a very good idea. This is because the jrebel.log contains logging events only from JRebel.