Sending JRebel log

While receiving JRebel support, it is common that you’ll be asked for the JRebel log. Here are the instructions on how to capture and send this.

How to record the log?

Normally, if you are asked for a JRebel log by the JRebel support team, this request means a “normal” JRebel log, not the super-detailed trace-level log. All JRebel logging is turned off by default (for performance), so you have to turn it on for recording the log. This is can be done in two ways:

  1. Check “Log to file” in the “Logging” tab of the JRebel Agent Settings GUI that can be found in %INSTALL_DIR%/bin/agent-settings.cmd or .sh correspondingly.
  2. Add -Drebel.log=true to the JVM command line of your server or application. It is easiest to add it to exactly the same place where you added -javaagent:/path/to/jrebel.jar during your initial application server configuration.

This change will only take effect after you’ve restarted the JVM (your application server). The log will by default be written to the file named jrebel.log, located in the JRebel installation directory (i.e. right next to your jrebel.jar).

Now reproduce the issue that was relevant for your support case, be it a direct error/exception, a performance issue or just a failure of JRebel to do what you were expecting or other unexpected behavior. After the relevant information got logged, send us the jrebel.log.

Additional logging flags

Web applications. If your support case is in any way web-application-specific (has to do with web frameworks, etc), it is usually a good idea to also enable logging of HTTP requests incoming to the server. Do this by adding additional JVM argument -Drebel.log.request=true

Performance. If your support case is about poor performance, enable performance logging. This is done by adding JVM argument -Drebel.log.perf=true.

If you are explicitly asked for the trace-level log, also add this JVM argument: -Drebel.log.trace=true. Don’t enable this if you are not asked to, as it is much harder for the support-guys to filter out the interesting information from the trace log.

Be sure to again disable the trace-level logging as soon as you no more need it — it has a major impact on performance!

Additional comments

  • Usually, sending the server/application log (the one that you usually see in the console if you start up your application server from command line and on the foreground) alongside with the jrebel.log is a very good idea. That’s because the jrebel.log itself only contains logging events from JRebel itself, not any output from the System.out.println statements or third-party loggers.
  • Notice the logfile gets truncated on every JRebel agent startup. So if you have recorded a log for a session that nicely reproduces your issue, be aware that restarting your application server would loose that log.

Where to send the log?

  • If you are asked for a JRebel log during private e-mail support, just attach it to your e-mail.
  • If you are asked for a JRebel log in the ZeroTurnaround forum, also send the log to the general e-mail support address: support@zeroturnaround.com. Be sure to copy-paste the link to the relevant forum-thread into your message body so that the support-team can easily connect your case with the log-file.

Join the Rebellion Facebook Twitter RSS feed