Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Supported by

Eye Tracker Log Skipping Messages (OpenGaze)


I am using Gazepoint in a few different experiments and in every eye tracking log .tsv file I have noticed it sometimes skips messages that I try to log, and other times it writes the message multiple times. I have tried logging in an inline script with eyetracker.log("message") in the run tab, as well as logging with the built-in pygaze_log item (pause between messages set to default 2ms). I have them placed in a sequence before a sketchpad item as my intention is to mark in the eye log when each different sketchpad is being displayed so that when analyzing the eye log I can see what was being displayed, is there a better way to go about doing this?

Thank you!


  • Hi Brandon,

    This is a consequence of the inherent limitations of GazePoint's OpenGaze API. It works by adding a log message to a particular sample, and thus will log the 'active' log message when a sample is logged. This can lead to logging the same message twice.

    The missing log messages are more worrying, as the log function I wrote should wait until at least one sample with the message is logged. There should also be an additional log where all log messages are registered too, which does not suffer from the OpenGaze log limitations. Do your log messages show up in there? This file should be [filename]_log.txt, where your data file is called [filename].tsv.


  • Thanks for the response, Edwin (and sorry for this late reply I haven't been in lab over the winter break). The additional .txt log file you mentioned does have all the log messages properly showing!


  • Hi Brandon,

    Excellent, thanks! That means that at least logging is working on some level.

    Few different things to double-check:

    1. Nothing currently appears in the "USER" column? This is the right-most column in the TSV file.

    2. Could you make sure that your messages are logged during the Run phase? The best ways of writing messages are by using an inline_script item (not nested in a sub-sequence) directly after a sketchpad that has a duration of 0 ms (you can add an advanced_delay item after the inline_script if needed). This inline script should just say eyetracker.log("sketchpad_onset") (feel free to edit the message) within its Run phase. Alternatively, you could use a pygaze_log element, which should have the option for automatic logging of all variables disabled, and should just say sketchpad_onset (or your own message) in the text box. If you want to use variables, you can refer to them with square brackets.

    If you still don't see any messages in your log file, I might need your experiment script and log file to debug what's going on.


  • Edwin,

    The "USER" column in the TSV file is logging things. Most of the cells are "0" with the occasional log (as I have put in the experiment). In following your directions for the second question I've noticed that the logging seems perfect for the first run and it's only once it loops that it begins to work incorrectly as previously mentioned (skipping some log commands). To confirm this I tested it in a new experiment that ran a simple sketchpad_1 > log > wait > sketchpad_2 > log. It logged both when I ran it as a single sequence, then I ran it again in a loop and it logged properly the first time through, then it started skipping (some) logs again when it looped!

    Attached is a zip file with the actual task I'm working on ("Asynchrony") as well as the little test I did ("Simple_Test") and the data from 1 run of each in case you need any of it! I have also tried putting the start recording and stop recording elements inside the loop but that didn't change anything.

    Thanks so much for the help!

  • edited January 21

    Hi Brandon,

    Thanks for your efforts to pinpoint the issue! I'll have a look at the documents when I can. (I know that's a bit unhelpful for now, but just wanted to let you know that I saw your message, and am not ignoring you.)


  • Updating this with a few more things I've tried! I said in my previous comment that it seems to be an issue only when looping but it turns out that wasn't right, I made an experiment with no loops just a collection of sketchpads and loggers to test and still got the issue. I can't seem to find any kind of pattern to this error that may lead to a specific cause. I even tried including the start/stop recording inside the loop (even though it slows down the experiment considerably) and it skipped the start and stop messages too! Any ideas for workarounds would also be greatly appreciated!


Sign In or Register to comment.