1) The log command on a Key element (ie not the one on the closing parenthesis of newTrial), by default, reports a line in the results file for a keypress that validates a corresponding wait command—if you use log but you have no wait command, or if the Key element’s wait command was never validated (eg. because a Timer ended the trial early) then you’ll have a line in your results file that says “NA.” If the participant pressed a key anyway (hence without validating a wait command) you’ll have “(failed keypresses happened)” in the comments.
As long as your line reports the key that was actually pressed (and that you care about) then you shouldn’t worry about that
2) The newTrial().log commands append columns to the end of every result line for the corresponding trial, in the order in which they are used. If you have one newTrial with one log command, and another newTrial also with one log command, each trial’s result lines will append one additional column. If you want to use separate columns across trial, you need to keep track of your newTrial().log commands. E.g.:
newTrial( newKey("press","Enter").wait(),newVar("key").global().set(getKey("press")) ) .log( "key" , getVar("key") ) .log( "rating" , "NA" ) newTrial( newScale("scale", 10).print().wait(),newVar("rating").global().set(getScale("scale")) ) .log( "key" , "NA" ) .log( "rating" , getVar("rating") )