7.4. 使用 Logback 记录 OptaPlanner solver 活动
logback 是推荐的日志框架,用于 OptaPlanner。使用 Logback 记录 OptaPlanner solver 活动。
先决条件
- 您有一个 OptaPlanner 项目。
流程
在您的 OptaPlanner 项目的
pom.xml文件中添加以下 Maven 依赖项:注意您不需要添加额外的网桥依赖项。
<dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.x</version> </dependency><dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.x</version> </dependency>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在
logback.xml文件中的org.optaplanner软件包上配置日志级别,如下例所示,其中 <LEVEL> 是 第 7.4 节 “使用 Logback 记录 OptaPlanner solver 活动” 中列出的日志记录级别。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 可选:如果您有一个多租户应用程序,其中多个
Solver实例可能会同时运行,请将每个实例的日志分成单独的文件中:使用 Mapped mailbox Context (MDC)组成
solve ()调用:MDC.put("tenant.name",tenantName); MySolution bestSolution = solver.solve(problem); MDC.remove("tenant.name");MDC.put("tenant.name",tenantName); MySolution bestSolution = solver.solve(problem); MDC.remove("tenant.name");Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将您的日志记录器配置为为每个
${tenant.name}使用不同的文件。例如,在logback.xml文件中使用SiftingAppender:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意当运行多个解析程序或一个多线程解决时,大多数附加程序(包括控制台)会导致
debug和trace日志记录的拥塞。切换到 async 附加程序以避免出现这个问题或关闭debug日志记录。
-
如果 OptaPlanner 没有识别新级别,请临时添加系统属性
-Dlogback.LEVEL=true以进行故障排除。