Redirect log messages to a file

By default, GRE error and warning messages appear in the standard output. When in distributed mode with the GREDEBUG environment variable set, the messages are also logged to the gre.log file in the home directory of the user invoking the GRE daemon. However, you can redirect these messages to a log file.

  1. Create a new text file with the following entries:
    log4j.rootLogger = INFO, LOGFILE
    log4j.appender.LOGFILE = org.apache.log4j.FileAppender
    log4j.appender.LOGFILE.file = log_url/log_filename.log
    log4j.appender.LOGFILE.layout = org.apache.log4j.PatternLayout
    log4j.appender.LOGFILE.layout.ConversionPattern = %-4r %5p %c - %m - %X{requestingUserName}%n

    Where log_url is the location and log_filename is the name of the log file.

    Note: The conversion pattern determines how logging events are formatted in the file, and is based on the PatternLayout class. You can use other specifiers, for example, %d{ISO8601} to add the date in ISO8601 format. For further information, see Class PatternLayout in the Apache log4j documentation.
  2. Open the $GREDIR/bin/greportwriter.bat file. To the java command, add the following option:
    exec java -Dlog4j.configuration=config_url/config_filename -Djava.awt.headless=true GReportWriter $DEBUGOPTION "$@"

    Where config_url is the location and config_filename is the name of the text file you created in step 1. For example:

    exec java 
    -Dlog4j.configuration="file:///home/alex/log4j_configuration.txt" 
    -Djava.awt.headless=true GReportWriter $DEBUGOPTION "$@"

GRE logs are written to the log_url/log_filename.log file.

Note: If you want to have the same type of logging in non-distributed mode as in distributed mode, it is not necessary to specify an external file. You can instead specify a resource path to one of the configuration files that are shipped inside gre.jar. These files are dependent on the operating system:
  • Unix: log4j_configuration_unx_d.txt
  • Windows: log4j_configuration_win_d.txt
  • Other: log4j_configuration_oth_d.txt

For example, in Linux™:

exec java 
-Dlog4j.configuration="com/fourjs/report/resources/log4j_configuration_unx_d.txt" 
-Djava.awt.headless=true GReportWriter $DEBUGOPTION "$@"