阅读更多
执行下面的代码
test:start().
test.erl
-module(test).
-compile(export_all).
start() ->
Fun = loop,
spawn(?MODULE, Fun, []).
loop() ->
receive
after 5000 ->
error_logger:delete_report_handler(error_logger_file_h), PDir = "/home/mzh/pratise",
{H, M, S} = time(),
SDir = lists:flatten(io_lib:format('~2..0b~2..0b~2..0b', [H, M, S])),
FileName = "log",
Path = PDir ++ "/" ++ SDir,
File = PDir ++ "/" ++ SDir ++ "/" ++ FileName,
file:make_dir(Path),
io:format("~n~p~n", [File]),
error_logger:swap_handler({logfile, File}),
error_logger:error_msg(File)
end,
loop().
每隔5秒钟把日志记录到以时间命名的目录中去,
-bash-3.2$ pwd
/home/mzh/pratise
-bash-3.2$ ls
154806 154816 154826 154836 154846 154856 154906 154916 154926 154936 154946 154956 155006 ...
每个文件夹中都是一个log文件,
log里面的内容都相同,是error_logger:error_msg(File)打印的内容,
例如其中一个log的内容
-bash-3.2$ cat 155011/log
=ERROR REPORT==== 22-Oct-2013::15:50:11 ===
/home/mzh/pratise/155011/log,
当然日志记录用rb也非常方便,会自动分类,rb使用方法
http://zacma.iteye.com/blog/1704685