setting timing on not getting time in log
\timing is a psql command - that is, it acts on the client side.  If you want to know the timing of your queries on the server side (that is, written to the logs), do
SET log_min_duration_statement TO 0;  

This will then result in a log entry for each and every statement.  You can disable this by setting it to -1.  To find the timings, you can grep the server log:
grep duration server.log

The issue with psql's -L option is that

-L filename
--log-file=filename
Write all query output into file filename, in addition to the normal output destination.

That is, anything that is not a query output (and not a header, I'd add) won't be redirected into the log file.  You can either use a shell redirect to write everything into the log:
psql [...] &gt; abc.log

Or, if you want to see the output on screen, too, use tee:
psql [...] | tee abc.log