$PreSet Timing as the $Pre function, stores the elapsed time in a variable,
stores just the result in Out[$Line] and print a formatted version showing the elapsed time
$Pre := (Print["[Processing input...]"];#1)&
$Post := (Print["[Storing result...]"]; #1)&
$PrePrint := (Print["The result is:"]; {TimeUsed[], #1})&
2 + 2
$Pre = .; $Post = .; $PrePrint = .; $ElapsedTime = .;
2 + 2