Configuration file checking

Ensuring you’re all set with Check

Once you’ve setup your study’s directory, you can ensure that your study is ready to compile by running the Check command. The check command will read over your configuration file, a log file that’s created by LibRec, and a log file that’s created by libRec-auto and append the found errors and messages to your output.xml file.

These checks are performed in the course of running a study regardless, but you have the ability to check your setup and debug it in advance.

There are various things the "check" command will check:

Environment:

  • Java version: Checks that you have Java version at least 1.8. (Note that it is difficult to do this in a general way and some JDKs are not recognized. You can skip this check with the -nj flag and the system will not complain about JDK compatibility.)

Configuration file checks:

  • Access: ensure all directories that LibRec or LibRec-Auto could write to have write access.
  • Elements: ensure all necessary elements for LibRec are found in the configuration file.
  • Library: ensure supplied library can be found and loaded.
  • Data: ensure supplied data directory can be found and loaded.
  • Scripts: ensure all paths to scripts are valid.
  • Optimization: ensure configuration file is setup to run optimization experiments.

LibRec checks (from Java):

  • On the Java side, the class names of algorithms and metrics are checked.
  • If an error is thrown during the execution of LibRec, the exception will be caught and added to output.xml

LibRec-Auto Log check (from Python):

Using the "-dev" argument in the command line will change the level of debugging messages you see in output.xml. Use the argument to set the logging level to DEBUG, which will catch all INFO logging messages. Without the "-dev" argument, the output xml file will only show WARNING messages and above.

  • "LibRec-Auto_Log": LibRec-Auto_Log will include all messages from logging messages. These messages will follow this general pattern: {log-level}:root:{message}. The levels can be broken down as such:
    • ERROR: Error level messages appear when there is a problem that will not allow LibRec-Auto to compile correctly.
    • WARNING: Warning level messages appear when there is a problem, but the problem will not interfere with LibRec-Auto’s compilation.
    • INFO: Info level messages appear when LibRec-Auto creates or writes to directories and files on the user’s computer.