如何从我的 Opendaylight 项目中查看调试日志

How to see debug logs from my Opendaylight project

我使用 MD-SAL Startup Archetype 创建了一个项目并添加了一些调试日志来检查代码。项目编译安装成功。但是在 运行 karaf 和 log:display 之后,我似乎找不到我输入的任何日志。 我刚开始使用 ODL,可能遗漏了一些东西。有人可以帮助我如何搜索我需要的日志吗? 例如,我在某处读到我们可以为特定的包做 setLogLevelorg.opendaylight.bundlename TRACE or DEBUG,但在我的例子中,启动原型创建了一个文件夹,其中包含其他几个文件夹,从 api、features、karaf 到 impl 文件夹。我主要在 impl 文件夹中添加了代码并创建了不同的 类,每个 类 都有我想检查的调试日志,那么在这种情况下如何指定包名称和路径?我应该在哪里使用该代码?因为在 karaf 控制台中我只能做 log:list, log:display DEBUG,等等。 很抱歉,如果这是一个令人困惑的问题,但我将不胜感激。

谢谢!

它不是您使用 set log level 命令指定的包名称,而是完全限定的 Java 包或 class 名称。您也可以直接编辑 etc/org.ops4j.pax.logging.cfg 来设置 packages/classes 的日志级别,例如:

log4j.logger.org.opendaylight.mypackage=DEBUG

在代码中,您为每个 class 创建 Logger 实例,例如:

package org.opendaylight.mypackage;

public class MyClass {
    private static final Logger LOG = LoggerFactory.getLogger(MyClass.class);
    ...
}

日志输出到 data/log/karaf.log.

您可以从 karaf CLI 执行以下命令。

  1. 为特定包设置日志级别。

    log:set debug <your package name>
    
  2. 查看日志

    log:tail