Python 日志记录+;Lttng框架日志不可用
我使用Python 日志记录+;Lttng框架日志不可用,python,logging,trace,lttng,Python,Logging,Trace,Lttng,我使用logging+lttng作为日志和跟踪框架,但我无法使用lttng视图查看日志,它只提供日志的路径 我使用下面的例子 Python示例 import lttngust import logging import time def example(): logging.basicConfig() logger = logging.getLogger('my-logger') while True: logger.debug('debug mes
logging
+lttng
作为日志和跟踪框架,但我无法使用lttng视图查看日志,它只提供日志的路径
我使用下面的例子
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跟踪代理的错误影响
当用户不是跟踪组的一部分,并且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
lttng sessiond-d
lttng创建
lttng enable事件——python我的记录器
lttng启动
python test.py
...
lttng停止
lttng视图
如果您现在收到事件,那么您的系统将受到错误的影响。
这个bug已经在2.10版本中修复,并将被移植到Ubuntu软件包中
在更新包之前,您可以将自己添加到跟踪
组中,或阻止systemd在启动时启动根lttng会话守护程序。您使用的Python、lttng UST、lttng工具和Babeltrace的版本是什么?还有,你是在哪个发行版和版本上尝试的?我尝试使用了python
和python3
在这种情况下我需要babeltrace
,如果是,为什么?你有我可以参考的示例吗?是的,你需要babeltrace。Babeltrace由lttng view命令调用。您使用的是我上面列出的软件的哪个版本?@fdeslaur可以使用上面的示例并尝试它。我的版本如下lttng--version lttng(lttng跟踪控制)2.10.2-KeKriek
我尝试过它。它在我的机器上运行得很好。您使用的发行版和版本是什么?您是否使用发行版软件包安装了lttng工具或从源代码处构建了它?即使在lttng sessiond的pkill之后也没有相同的行为您能否确认根lttng sessiond进程确实已被pkill命令终止?您可以使用ps aux | grep lttng sessiond
检查是否存在错误。事实上,这不是我清除的错误,我创建了一个新的会话,它工作得非常好:)