首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >日志记录+ Lttng框架日志不可用

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

Stack Overflow用户
提问于 2018-09-17 10:44:47
回答 1查看 307关注 0票数 0

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

我正在使用以下示例

Python示例

代码语言:javascript
复制
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

步骤

代码语言:javascript
复制
lttng create
lttng enable-event --python my-logger
lttng start

运行Python脚本:

代码语言:javascript
复制
python test.py

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

代码语言:javascript
复制
lttng stop
lttng view //Not working as expected

运行lttng视图

代码语言:javascript
复制
vinay@root:~/lttng-traces/auto-20180917-121542/ust/uid/1003/64-bit/index$ lttng view
Trace directory: /home/vinay/lttng-traces/auto-20180917-121542
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-18 16:02:58

您在注释中提到您正在lttng 2.10.2上运行。此版本受Python跟踪代理的bug影响。

当用户不是tracing的一部分时,当lttng会话守护进程作为root运行时,bug使得无法跟踪python应用程序。这一要求通常只适用于内核跟踪。您遇到此错误是因为systemd在启动时启动根lttng会话守护进程。

您可以很容易地通过以root身份登录并杀死根lttng会话守护进程并以您自己的非根用户身份运行会话守护进程来测试是否确实是该错误:

作为根:

代码语言:javascript
复制
pkill lttng-sessiond

作为非根用户:

代码语言:javascript
复制
lttng-sessiond -d
lttng create
lttng enable-event --python my-logger
lttng start
python test.py
...
<ctrl + c>
lttng stop
lttng view

如果您现在收到了事件,那么您就会受到bug的影响。此bug已在2.10分支中修复,并将其应用到Ubuntu包中。

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52365956

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档