搜索

7.4. 使用 Logback 记录 OptaPlanner solver 活动

download PDF

Logback 是推荐与 OptaPlanner 搭配使用的日志记录框架。使用 Logback 记录 OptaPlanner solver 活动。

先决条件

  • 您有一个 OptaPlanner 项目。

流程

  1. 将以下 Maven 依赖项添加到 OptaPlanner 项目的 pom.xml 文件中:

    注意

    您不需要添加额外的网桥依赖项。

        <dependency>
          <groupId>ch.qos.logback</groupId>
          <artifactId>logback-classic</artifactId>
          <version>1.x</version>
        </dependency>
  2. logback.xml 文件中的 org.optaplanner 软件包上配置日志级别,如下例所示,其中 < LEVEL&gt; 是 第 7.4 节 “使用 Logback 记录 OptaPlanner solver 活动” 中列出的日志级别。

    <configuration>
    
      <logger name="org.optaplanner" level="<LEVEL>"/>
    
      ...
    
    </configuration>
  3. 可选:如果您有一个多租户应用程序,其中多个 Solver 实例可能会同时运行,请将每个实例的日志记录分开到单独的文件中:

    1. 映射的诊断上下文 (MDC)周围的 solve () 调用:

              MDC.put("tenant.name",tenantName);
              MySolution bestSolution = solver.solve(problem);
              MDC.remove("tenant.name");
    2. 将您的日志记录器配置为为每个 ${tenant.name} 使用不同的文件。例如,在 logback.xml 文件中使用 SiftingAppender

        <appender name="fileAppender" class="ch.qos.logback.classic.sift.SiftingAppender">
          <discriminator>
            <key>tenant.name</key>
            <defaultValue>unknown</defaultValue>
          </discriminator>
          <sift>
            <appender name="fileAppender.${tenant.name}" class="...FileAppender">
              <file>local/log/optaplanner-${tenant.name}.log</file>
              ...
            </appender>
          </sift>
        </appender>
      注意

      当运行多个 solvers 或一个多线程解决时,大多数附加程序(包括控制台)会导致 debugtrace 日志记录。切换到 async 附加器以避免出现这个问题或关闭 调试日志记录

  4. 如果 OptaPlanner 无法识别新级别,请临时添加系统属性 -Dlogback.LEVEL=true 进行故障排除。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.