日志记录 + Lttng 框架日志不可用

Logging + Lttng framework logs not available

我正在使用 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

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

当用户不属于 tracing 并且 lttng 会话守护进程是 运行 作为根。此要求通常只存在于内核跟踪。您遇到此错误是因为 systemd 在启动时启动了根 lttng 会话守护进程。

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

作为根用户:

pkill lttng-sessiond

作为您的非根用户:

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 在启动时启动 root lttng 会话守护进程。