18.8. 日志记录

完成 Red Hat Build of OptaPlanner education timetable 项目后,您可以使用日志信息微调 ConstraintProvider 中的限制。查看 info 日志文件中的分数计算速度,以评估对您约束的更改的影响。以调试模式运行应用程序,以显示应用程序所采用的每个步骤,或使用 trace logging 来记录每个步骤和每个移动。

流程

  1. 以固定时间(例如 5 分钟)运行 amp time。
  2. 查看日志文件中的分数计算速度,如下例所示:

    ... Solving ended: ..., score calculation speed (29455/sec), ...
  3. 更改约束,再次运行 planning 应用程序以相同的时间,并检查日志文件中记录的分数计算速度。
  4. 以 debug 模式运行应用程序以记录应用程序所做的每个步骤:

    • 要从命令行运行调试模式,请使用 -D 系统属性。
    • 要永久启用 debug 模式,请在 application.properties 文件中添加以下行:

      quarkus.log.category."org.optaplanner".level=debug

      以下示例显示了 日志文件中的 debug 模式的输出:

      ... Solving started: time spent (67), best score (-20init/0hard/0soft), environment mode (REPRODUCIBLE), random (JDK with seed 0).
      ...     CH step (0), time spent (128), score (-18init/0hard/0soft), selected move count (15), picked move ([Math(101) {null -> Room A}, Math(101) {null -> MONDAY 08:30}]).
      ...     CH step (1), time spent (145), score (-16init/0hard/0soft), selected move count (15), picked move ([Physics(102) {null -> Room A}, Physics(102) {null -> MONDAY 09:30}]).
      ...
  5. 使用 trace logging 显示每个步骤和每个步骤。