【问题标题】:Logging + Lttng framework logs not available日志记录 + Lttng 框架日志不可用
【发布时间】:2019-02-21 06:33:03
【问题描述】:

我正在使用 logging + lttng 作为日志记录和跟踪框架,但我无法使用 lttng view 查看日志,它只是给了我日志的路径

我使用下面的例子

Python 示例

import lttngust
import logging
import time


def example():
    logging.basicConfig()
    logger = logging.getLogger('my-logger')

    while True:
        logger.debug('debug message')
        logger.info('info message')
        logger.warn('warn message')
        logger.error('error message')
        logger.critical('critical message')
        time.sleep(1)


if __name__ == '__main__':
    example()

执行以下命令以启用lttng

步骤

lttng create
lttng enable-event --python my-logger
lttng start

运行 Python 脚本:

python test.py

停止跟踪并检查记录的事件:

lttng stop
lttng view //Not working as expected

关于运行 lttng 视图

vinay@root:~/lttng-traces/auto-20180917-121542/ust/uid/1003/64-bit/index$ lttng view
Trace directory: /home/vinay/lttng-traces/auto-20180917-121542

【问题讨论】:

  • 您使用的是哪个版本的 Python、LTTng-UST、LTTng-Tools 和 Babeltrace?另外,您正在尝试哪个发行版和版本?
  • 我尝试使用pythonpython3 在这种情况下我是否需要babeltrace 如果是的话为什么以及你有任何我可以参考的例子。
  • 是的,你需要 Babeltrace。 Babeltrace 由 lttng view 命令调用。您使用的是我上面列出的软件的哪个版本?
  • @fdeslaur可以用上面的例子试试看我的版本如下lttng --version lttng (LTTng Trace Control) 2.10.2 - KeKriek
  • 我试过了。它在我的机器上运行良好。您使用的是什么发行版和版本?您是否使用发行版包安装了 lttng-tools 或从源代码构建它?

标签: python logging trace lttng


【解决方案1】:

您在 cmets 中提到您在 lttng-tools 2.10.2 上运行。 此版本受 Python 跟踪代理错误的影响。

当用户不属于tracing并且 lttng 会话守护程序以root 身份运行时,该错误导致无法跟踪python 应用程序。这个要求通常只存在于内核跟踪。您遇到此错误是因为 systemd 在启动时会启动一个根 lttng 会话守护进程。

您可以通过以 root 身份登录并杀死 root lttng 会话守护程序并以您自己的非 root 用户身份运行会话守护程序来轻松测试它是否确实是这个错误,如下所示:

作为根用户:

pkill lttng-sessiond

作为您的非 root 用户:

lttng-sessiond -d
lttng create
lttng enable-event --python my-logger
lttng start
python test.py
...
<ctrl + c>
lttng stop
lttng view

如果您现在收到事件,那么您会受到该错误的影响。 此错误已在 2.10 分支中修复,并将添加到 Ubuntu 软件包中。

在软件包更新之前,您可以将自己添加到 tracing 组或阻止 systemd 在启动时启动根 lttng 会话守护进程。

【讨论】:

  • 即使在 pkill lttng-sessiond 后也没有运气相同的行为
  • 你能确认root lttng-sessiond 进程确实被pkill 命令杀死了吗?您可以使用ps aux | grep lttng-sessiond 进行检查。
  • 实际上这不是错误,我清理了所有内容并创建了一个新会话,并且效果非常好:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-06-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-19
  • 1970-01-01
  • 2017-10-02
相关资源
最近更新 更多