最近在从事erlang开发过程中遇到了几个问题,在这里一一记录一下。
1 以detached模式启动mochiweb之后怎么重新获得应用程序的控制权
a: erl -sname test@HOST -setcookie COOKIE %% sname用于局域网,如果是
远程机器需要用name,其次,HOST同远被操控的机器的主机名,COOKIE同被操控的节点的COOKIE
b: Ctrl + G
c: r sns_dev@HOTS
d: c
2 detached方式启动之后,用rb查看循环日志不能在屏幕上显示,去官网上查看了一下,有人说这是一个BUG,后面有人解决,但没有被官方认可,我最后的解决办法:
把日拷贝下来,然后再用rb命令看,OK问题解决(顺便把日志配制文件拷贝下来,启动的时候加上参数 -boot start_sasl -config elog)elog.conf为循环日志配制文件
3 昨天发现,gen_server 在hand_call中好像不能调用本身对外提供的接口,这是为什么呢?难道gen_server提供服务,是单进程的,也就是说如果一个服务没有完成,就不能对外提供下一个服务?奇了怪了。保留问题至此,再研究研究。
4 昨天在打印调式信息的时候io:format("~2222222222222222222 ~n"),为了美观,以2前面加了一个~,这下惨了,一直没有观注这个地方还会有问题,赌了我半天呀。~是erlang中的占位符的前缀,怎么可以乱用呢?真是不应该了。
5 erlang的循环日志比较高级,但有一点让人郁闷的是,他记录的是二进制要借助rb工具去查看,比较麻烦,怎么办?
start()-> info("[init] log start ~n"), {Y,M,D} = date(), {H,Min,S} = time(), FileName = ?LogsLoaction++integer_to_list(Y)++integer_to_list(M)++integer_to_list(D)++integer_to_list(H)++integer_to_list(Min)++integer_to_list(S)++"\.txt", file:write_file(FileName, <<"start to record">>), error_logger:logfile({open,FileName}). info(String)-> error_logger:info_msg(String). info(String,Value)-> error_logger:info_msg(String,Value). error(String)-> error_logger:error_msg(String). error(String,Value)-> error_logger:error_msg(String,Value).
这样干,就可以将你想要输出的东西输出到txt文件中去了。哈哈。。