Yocto:配方中的自定义彩色输出? 上下文

Yocto:配方中的自定义彩色输出? 上下文,yocto,bitbake,openembedded,recipe,Yocto,Bitbake,Openembedded,Recipe,当我使用bitbake与Yocto一起处理食谱时,我希望能够在屏幕上打印有用的输出。到目前为止,有几种方法可以做到这一点,但它们并不实用。让我列举一下默认选项: 使用:bbinfo“我的消息”和bitbake--verbose 使用:bbdebug 1“我的消息”和bitbake-D(可以对更多调试级别进行缩放) 使用:bbwarn“我的消息”,不带额外标志 问题 使用选项(1)会在终端上输出大量不必要的杂波,并且也会因为没有彩色输出而受到影响。选项(2)是彩色的,但不幸的是,它还捕获了来自其

当我使用bitbake与Yocto一起处理食谱时,我希望能够在屏幕上打印有用的输出。到目前为止,有几种方法可以做到这一点,但它们并不实用。让我列举一下默认选项:

  • 使用:
    bbinfo“我的消息”
    bitbake--verbose
  • 使用:
    bbdebug 1“我的消息”
    bitbake-D
    (可以对更多调试级别进行缩放)
  • 使用:
    bbwarn“我的消息”
    ,不带额外标志

  • 问题 使用选项(1)会在终端上输出大量不必要的杂波,并且也会因为没有彩色输出而受到影响。选项(2)是彩色的,但不幸的是,它还捕获了来自其他构建组件的大量调试消息,这些消息会淹没输出。现在我一直在使用选项(3),因为它可以让我的消息脱颖而出,而不会让其他不相关的信息出现


    所以我的问题是,如何为我自己的消息启用自定义日志记录(即绿色或蓝色)?这将使我更容易区分我想要的重要输出,而不会意外地使不必要的信息出现

    Bitbake负责以适当的颜色打印日志消息。如果您想添加不同颜色的日志消息,可以通过修改:似乎是bbwarn/bbdebug/bbplain/etc。。。shell命令被转换为Python的bb.warn、bb.debug、bb.plain等。。此处定义:其颜色和日志级别在此处定义的BBLogFormatter类中定义:

    我个人会尝试以处理不同调试级别的相同方式添加警告级别,然后您可以将警告级别与特定颜色相关联

    但是,这会修改bitbake本身,这不可能通过bbappends或其他btibake机制实现,因为它们是Python脚本


    否则,我想知道是否不可能在/中为您想要使用的配方/任务/函数定义您自己的记录器,例如,拥有一个bbclass,它使用Python
    日志记录模块设置您需要的所有内容,并使用它而不是bbwarn或bb.warn。

    感谢您的回复!实际上,我尝试添加自己的python函数,使用
    printf
    ,然后甚至使用带有
    echo
    的bash函数来尝试将消息打印到屏幕上。然而,Yocto似乎在指导STDOUT以外的其他地方,因为它没有出现在屏幕上。只有使用日志功能的消息出现。如果我们可以确认,除了修改bitbake本身之外,没有其他方法可以让消息出现,那么我将接受您的回答。我不太惊讶,它可能存储在
    ${WORKDIR}/temp/log.do_u
    而不是打印在控制台上。除了修改Yocto ATM之外,我看不到更好的解决方法,所以我会接受你的回答。