将日志查看器导出到文件

Posted

技术标签:

【中文标题】将日志查看器导出到文件【英文标题】:Export Log Viewer to file 【发布时间】:2020-03-04 16:54:11 【问题描述】:

我想知道是否可以使用加载到机器人中的 Python 脚本将我在 Choregraphe 中的 LogViewer 中获得的相同信息导出到 .txt 文件中。

我查看了 Aldebaran 的文档,这似乎是唯一接近我需要的东西:http://doc.aldebaran.com/2-4/dev/libqi/guide/py-log-client.html

有没有人偶然发现同样的情况?我可以使用类似于链接中给出的示例的方法将日志保存到 .txt 文件中吗?

提前感谢您的帮助!

【问题讨论】:

【参考方案1】:

使用 Python 程序访问日志

使用docs 中的qi.logging 示例,您可以像这样将日志消息写入文件。

import qi
import qi.logging

t = open('log.txt','w')

def onMessage(mess):
    t.write(str(mess) + '\n') # mess is a dictionary with all known LogMessage information.

def main():
    app = qi.Application()
    app.start()
    logmanager = app.session.service("LogManager")
    listener = logmanager.getListener()
    listener.onLogMessage.connect(onMessage)
    app.run()

if __name__ == "__main__":
    main()

请注意,格式将与您在 Choregraphe 中看到的不同,因为日志消息以字典格式存储。这是一个示例消息。

'category': 'ALMemory', 'level': 5L, 'source': ':notify:0', 'location': '36cd8c70-ff69-4017-ac66-c5c711cde253:3106', 'date': 4088131421410L, 'message': 'notifying module: ALBasicAwareness for datachange for key: ALTracker/FindPersonHead', 'id': 2716827L, 'systemDate': 1583368808079483915L

如果您不需要实时日志,下面可能是一种更简单的方法。

手动访问日志

还有多种手动获取日志的方法,具体取决于您希望将信息用于什么目的。此方法对于在运行测试后收集日志数据进行分析最有用。

首先,您可以直接从/var/log/naoqi/servicemanager/system.Naoqi.log 中写入的naoqi 系统日志复制,例如使用scp。您可以找到不同日志的描述here。

scp nao@<nao-ip>:/var/log/naoqi/servicemanager/system.Naoqi.log <location-to-store>

您也可以在机器人上运行工具nao-diagnostic,它将所有日志文件收集到/home/nao/diagnosis/nao-diagnosis_&lt;date&gt;.tar.xz。你可以让他们复制这个文件,解压,你会在system-logs/logs/naoqi/servicemanager/system.Naoqi.log找到Naoqi日志

【讨论】:

非常感谢!这正是我接近它的方式。

以上是关于将日志查看器导出到文件的主要内容,如果未能解决你的问题,请参考以下文章

Windows.old 事件查看器日志

Linux查看日志文件写入速度的4种方法

如何查看交换机日志文件

查看linux系统日志的命令

3 .2 日志文件查看器

win7怎样通过DOS命令查看计算机日志文件