erlang常见问题一二三
最近在从事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文件中去了。哈哈。。