There is standard error logging application SASL http://www.erlang.org/doc/system_principles/error_logging.html.
It can be configured to save logs on disk.
error_logger:info_report example usage:
2> error_logger:info_report([{tag1,data1},a_term,{tag2,data}]).
=INFO REPORT==== 11-Aug-2005::13:55:09 ===
tag1: data1
a_term
tag2: data
ok
3> error_logger:info_report("Something strange happened").
=INFO REPORT==== 11-Aug-2005::13:55:36 ===
Something strange happened
ok
Also there is log4erl when you need different log format. You can look for real usage of it in erlyvideo project.