Доступ к журналам с помощью Python Программы
Используя пример 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}
Если вам не нужны журналы в режиме реального времени, то ниже может быть более простой подход.
Доступ к журналам вручную
Есть также несколько способов получить журналы вручную, в зависимости от того, для чего вы хотите использовать информацию. Этот метод наиболее полезен для сбора данных журнала для анализа после выполнения теста.
Во-первых, вы можете скопировать системные журналы naoqi непосредственно из того места, где они были записаны в /var/log/naoqi/servicemanager/system.Naoqi.log
, например, используя scp. Вы можете найти описания различных журналов здесь .
scp nao@<nao-ip>:/var/log/naoqi/servicemanager/system.Naoqi.log <location-to-store>
Вы также можете запустить инструмент nao-diagnostic
на роботе, который соберет все файлы журналов в /home/nao/diagnosis/nao-diagnosis_<date>.tar.xz
. Вы можете скопировать этот файл, распаковать его, и вы найдете журнал Naoqi на system-logs/logs/naoqi/servicemanager/system.Naoqi.log