mysql命令的依赖库_3.EZMM工程(常用shell命令,及需要用到的基本依赖库)

1.sasl是一个应用,sasl的一个重要功能便是可以记录系统进程相关日志,如进程启动、结束、崩溃错误等信息。sasl的日志功能是基于erlang自带的日志模块error_logger来实现的。我简单的介绍下SASL的使用。

sasl中定义了下面3个错误处理:

sasl_report_tty_h:将日志输出到控制台

sasl_report_file_h:将日志输出到单个文件

error_logger_mf_h:循环日志文件记录

sasl日志配置解析示例文件elog.config

[{sasl, [

%% minimise shell error logging

{sasl_error_logger, false},

%% only report errors

{errlog_type, error},

%% define the parameters of the rotating log

%% the log file directory

{error_logger_mf_dir,"./logs"},

%% # bytes per logfile

{error_logger_mf_maxbytes,10485760}, % 10 MB

%% maximum number of

{error_logger_mf_maxfiles, 10}]}].

上面的配置实际上可以分为两组

1).输出到控制台或者单个文件sasl_error_logger 、errlog_type,这组配置对sasl_report_tty_h、sasl_report_file_h这两个日志处理器有效

sasl_error_logger false|tty|{file,File}|{file, FileName, Modes}  默认ttyerrlog_type error|progress|all, 默认all

2).输出到循环日志文件 error_logger_mf_dir 日志目录 error_logger_mf_maxbytes 日志文件大小

error_logger_mf_maxfiles 日志文件个数

上面两组配置是互相独立的,启动erlang时可以指定配置文件

$erl -boot start_sasl -config elog

start_sasl是一个启动文件,在erlang的安装目录下可以找到,全称为start_sasl.boot, elog就是上面的配置文件elog.config。

读取循环日志 循环日志是用二进制格式记录在文件中的,需要使用rb工具读取,rb常用函数有: rb:start(Options) 启动rb {max, MaxNoOfReports} 读取的最大日志条数 {report_dir, DirString} 指定读取日志的目录,默认为配置项error_logger_mf_dir中的值 {type, ReportType} 读取指定类型的报告,error | error_report | info_msg | info_report | warning_msg | warning_report | crash_report | supervisor_report | progress rb:stop() 停止rb rescan(Options) 重新扫描日志文件 list()、list(Type) 列出所有的日志报告,Type可以指定列出的报告类型

show(Report) 显示日志报告的详细信息,Report取值为list列出的编号。

2.http服务器  mochiweb  http://www.cnblogs.com/yourihua/archive/2012/07/27/2610844.html

MochiWeb is an Erlang library for building lightweight HTTP servers

MochiWeb是一个构建轻量级HTTP服务器的Erlang类库

在rebar.config 中添加

{mochiweb, ".*", {git, "https://github.com/mochi/mochiweb.git", {branch,"master"}}}

使用rebar get-deps 将其源码下载到deps中

3.emysql: erlang 操作mysql数据库

在rebar.config 文件中添加

{deps,

[

{'emysql', ".*", {git, "https://github.com/Eonblast/Emysql", {branch,"master"}}},

{'mochiweb', ".*", {git, "https://github.com/mochi/mochiweb.git", {branch,"master"}}}

]

}.

使用rebar get-deps 将源码下载到deps文件中

备注:使用rebar compile 将会有报错与警告

1252a37919968622bd01d5f2bc3aba66.png

available=queue:new() :: queue(),                              available=queue:new() :: queue:queue(),

locked=gb_trees:empty() :: gb_tree(),    改为             locked=gb_trees:empty() :: gb_tree:gb_tree(),

waiting=queue:new() :: queue(),                                 waiting=queue:new() :: queue:queue(),

或者在rebar.config中添加

{erl_opts, [

{platform_define, "^[0-9]+", namespaced_types},  % 增加一行这个

......

]}.

然后在emysql.erl文件中新增如下几行

-export_type([

t_gb_tree/0,

t_queue/0,

t_dict/0 ]).

-ifdef(namespaced_types).

-type t_gb_tree() :: gb_trees:tree().

-type t_queue() :: queue:queue().

-type t_dict() :: dict:dict().

-else.

-type t_gb_tree() :: gb_tree().

-type t_queue() :: queue().

-type t_dict() :: dict().

-endif.

然后在修改

available=queue:new() :: queue(),                              available=queue:new() :: emysql: t_queue(),

locked=gb_trees:empty() :: gb_tree(),    改为             locked=gb_trees:empty() :: emysql:t_gb_tree(),

waiting=queue:new() :: queue(),                                 waiting=queue:new() :: emysql:t_queue(),

修改完后再次编译,出现

42f3807c6462cb84582d9a5591f3911a.png

在rebar.config中添加

erl_opts项中添加 {platform_define, "(?=^[0-9]+)(?!^17$)", timestamp_support},

在emysql_util.erl中添加

-export([

timestamp/0

]).

-ifdef(timestamp_support).

timestamp() -> erlang:timestamp().

-else.

timestamp() -> erlang:now().

-endif.

将使用到erlang:now() 出修改为emysql_util:timestamp() 即可

4.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值