Hot answers tagged history
In addition to assigning to In, the Mathematica main loop assigns the input to InString before it is parsed as an expression. You can then retrieve InString and parse the result with ToExpression, wrapping it in Defer to prevent it from evaluating immediately: In:= ToExpression[InString, StandardForm, Defer] Out= Round[SessionTime] You can ...
$Epilog := PutAppend[DateList, DownValues[In], "log.log"] will do what you want. It assumes the log file exists and will append to it. You could also place the PutAppend in the file end.m, where $Epilog reads from upon exit.
The input is stored as a downvalue in the definition of In. If you've only typed a few expressions, run Definition@In which prints a list of all the values associated with the symbol In, and copy from the line In := Round[SessionTime]. But if you've typed hundreds of expressions, or expressions whose plain-text representations are long (like ...
This is a little raw but something along the lines of this should work... stream = OpenWrite["C:\\Temp\\KitchenSink.math"]; $Pre = (Write[stream, #]; #) &; $Post = (Write[stream, #]; #) &; When finished... Clear[$Pre, $Post]
Only top voted, non community-wiki answers of a minimum length are eligible