将日志查看器导出到文件
Export Log Viewer to file
我想知道是否可以通过使用加载到机器人中的 Python 脚本将我在 Choregraphe 的 LogViewer 中获得的相同信息导出到 .txt 文件中。
我查看了 Aldebaran 的文档,这是唯一似乎足够接近我需要的东西:http://doc.aldebaran.com/2-4/dev/libqi/guide/py-log-client.html
有没有人遇到过同样的情况?我可以使用类似于 link 中给出的示例的方法将日志保存到 .txt 文件中吗?
提前感谢您的帮助!
使用 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}
如果您不需要实时日志,下面可能是一种更简单的方法。
手动访问日志
还有许多方法可以手动获取日志,具体取决于您希望将这些信息用于什么目的。此方法最适合在 运行 测试后收集日志数据进行分析。
首先,您可以使用 scp 等直接从 /var/log/naoqi/servicemanager/system.Naoqi.log
中写入的 naoqi 系统日志复制它们。您可以找到不同日志的描述 here.
scp nao@<nao-ip>:/var/log/naoqi/servicemanager/system.Naoqi.log <location-to-store>
您也可以 运行 机器人上的工具 nao-diagnostic
,它会将所有日志文件收集到 /home/nao/diagnosis/nao-diagnosis_<date>.tar.xz
中。你可以复制这个文件,解压,你会在 system-logs/logs/naoqi/servicemanager/system.Naoqi.log
找到 Naoqi 日志
我想知道是否可以通过使用加载到机器人中的 Python 脚本将我在 Choregraphe 的 LogViewer 中获得的相同信息导出到 .txt 文件中。
我查看了 Aldebaran 的文档,这是唯一似乎足够接近我需要的东西:http://doc.aldebaran.com/2-4/dev/libqi/guide/py-log-client.html
有没有人遇到过同样的情况?我可以使用类似于 link 中给出的示例的方法将日志保存到 .txt 文件中吗?
提前感谢您的帮助!
使用 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}
如果您不需要实时日志,下面可能是一种更简单的方法。
手动访问日志
还有许多方法可以手动获取日志,具体取决于您希望将这些信息用于什么目的。此方法最适合在 运行 测试后收集日志数据进行分析。
首先,您可以使用 scp 等直接从 /var/log/naoqi/servicemanager/system.Naoqi.log
中写入的 naoqi 系统日志复制它们。您可以找到不同日志的描述 here.
scp nao@<nao-ip>:/var/log/naoqi/servicemanager/system.Naoqi.log <location-to-store>
您也可以 运行 机器人上的工具 nao-diagnostic
,它会将所有日志文件收集到 /home/nao/diagnosis/nao-diagnosis_<date>.tar.xz
中。你可以复制这个文件,解压,你会在 system-logs/logs/naoqi/servicemanager/system.Naoqi.log