Log Files
Information on the different log files Mycroft uses, where the logs files are located on a Mycroft Device, the sort of data that you will find in them, and some common commands to use to aid diagnosis
If you request Support from Mycroft, through the Mycroft Forum, through Mycroft Chat or by contacting us, it is likely we will ask you for logs to help us diagnose the problem.
The Support Skill automatically generates links to log files - so if you prefer a less detailed approach, then please use the Support Skill.
About the Mycroft logs
The Mycroft logs each follow a standard format, being:
A timestamp
The function or action that was called
The level of the error, which can be one of:
DEBUG - incidental information used for debugging purposes
INFO - informational log entries which do not indicate an error
WARNING - an error occurred, but it did not stop execution of the Skill or process
ERROR - an error occurred, and it stopped execution of a Skill or other process
CRITICAL - a significant error occurred, and it halted execution of the Mycroft functionality itself
How to find the Mycroft logs
The logs on all Devices are held at /var/log/mycroft/
.
To access the logs, you will need to ssh
into the Device. You can find ssh
instructions for Mark 1 and ssh
instructions for Picroft on this site also.
To find what Mycroft logs are available, run the following Linux command:
ls -las /var/log/mycroft/
Example (from a Ubuntu Linux install):
Log file descriptions
audio.log
This log contains information on actions such as:
When Mycroft loads audio services
When Mycroft speaks
When the Text to Speech (TTS) cache is hit
When volume is increased or decreased
bus.log
This log contains information on actions such as:
Messages sent between Mycroft components such as Skills and the Enclosure that Mycroft is running on
Data generated through invoking and controlling Skills
Errors related to reading configuration files
enclosure.log
This log contains information on actions such as:
Loading of configurations for the Enclosure
Altering properties of the Enclosure, such as the Eyes or Mouth on a Mark 1
Activities related to the Enclosure Display Manager
skills.log
This log contains information on actions such as:
The outcome of Mycroft attempting to load Skills, such as whether a Skill was successfully loaded, blacklisted (disabled by Mycroft) or failed to load
When an Utterance is spoken, which Skill it was matched with, and the information provided to the Skill
Information related to the Mycroft Skill Manager (msm), including an msm-specific error code.
update.log
Some Enclosures, like the Mark 1 and Picroft will automatically try to update their software periodically. This log is the output of the update process, and has similar output to what you would see if you manually ran apt-get update
. This includes the number of packages updated, which packages were removed, and which packages were held back.
voice.log
This log contains information on actions such as:
Registration and activation of Wake Words
Any errors associated with the Precise Wake Word listener functionality
Transcriptions from the Speech to Text (STT) service
When the Text to Speech (TTS) service was activated
Useful diagnostic commands
Errors in a Skill
To find the errors related to a particular Skill, use this command once you have created an ssh
connection:
cat /var/log/mycroft/skills.log | grep -i error | grep -i SKILLNAME
where SKILLNAME
is the name of the Skill.
Tailing the skills.log
If you are developing new Skills for Mycroft, then we strongly recommend that you tail
the skills.log
log file as you are doing development work, so that you can easily observe any errors that your Skill is throwing. To do this, use this command:
tail -f /var/log/mycroft/skills.log
To stop tail
ing the log, press Ctrl + C.
Log rotation
On Picroft and Mark 1 Devices, log rotation is implemented using the logrotate
utility. This means that log files are rotated every 24 hours to a new file. When a log file is rotated, it is given a name with a number suffix. Yesterday's log file is logname.log.1
and the day before yesterday's is named logname.log.2
and so on. This makes it easier to troubleshoot an error to the time or date that it occurred, and also ensures that disk space on the Device is not exhausted.
On Linux installations, log rotation is not implemented, so you may have to manually delete logs from time to time if they are taking up too much space.
If you accidentally delete your log files, they will be recreated the next time the Mycroft services are started.
Here is an example of a Mark 1's /var/log/mycroft
directory, showing log rotation:
Last updated