8.5. 使用 Log4J 记录 OptaPlanner solver 活动


如果您已经使用 Log4J,且您不想切换到更快速的后续后继而使用 Log4J,您可以为 Log4J 配置 OptaPlanner 项目。

先决条件

  • 您有一个 OptaPlanner 项目
  • 您使用 Log4J 日志框架

流程

  1. 将网桥依赖项添加到项目 pom.xml 文件中:

        <dependency>
          <groupId>org.slf4j</groupId>
          <artifactId>slf4j-log4j12</artifactId>
          <version>1.x</version>
        </dependency>
    Copy to Clipboard Toggle word wrap
  2. log4j.xml 文件中在软件包 org.optaplanner 上配置日志级别,如下例所示,其中 < LEVEL& gt; 是 第 8.4 节 “使用 Logback 记录 OptaPlanner solver 活动” 中列出的日志记录级别。

    <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
    
      <category name="org.optaplanner">
        <priority value="<LEVEL>" />
      </category>
    
      ...
    
    </log4j:configuration>
    Copy to Clipboard Toggle word wrap
  3. 可选:如果您有一个多租户应用程序,其中可能会有多个 Solver 实例同时运行,请将每个实例的日志记录分开到单独的文件中:

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

              MDC.put("tenant.name",tenantName);
              MySolution bestSolution = solver.solve(problem);
              MDC.remove("tenant.name");
      Copy to Clipboard Toggle word wrap
    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>
      Copy to Clipboard Toggle word wrap
      注意

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

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2026 Red Hat
返回顶部