23.2.2配置错误记录器02

4. 文本文件和shell

接下来的配置文件会在shell里列出错误报告,所有的进度报告则会保存在一个文件里

%%文件erlog1.config

[{sasl, [
	{sasl_error_logger, {file,"log"}}
]}].

这里我们再去启动erlshell,并生成一个错误消息

PS C:\CodeProjects\ErlangProjects\erlang_learning\src\.cfg> erl -boot start_sasl -config erlog
Eshell V9.3  (abort with ^G)
1> error_logger:error_msg("There is an error").     

=ERROR REPORT==== 12-Sep-2024::22:36:45 ===
There is an errorok
2>

然后查看之前配置的日志文件

=PROGRESS REPORT==== 12-Sep-2024::22:39:55 ===
          supervisor: {local,sasl_safe_sup}
             started: [{pid,<0.62.0>},
                       {id,alarm_handler},
                       {mfargs,{alarm_handler,start_link,[]}},
                       {restart_type,permanent},
                       {shutdown,2000},
                       {child_type,worker}]

=PROGRESS REPORT==== 12-Sep-2024::22:39:55 ===
          supervisor: {local,sasl_sup}
             started: [{pid,<0.61.0>},
                       {id,sasl_safe_sup},
                       {mfargs,
                           {supervisor,start_link,
                               [{local,sasl_safe_sup},sasl,safe]}},
                       {restart_type,permanent},
                       {shutdown,infinity},
                       {child_type,supervisor}]

=PROGRESS REPORT==== 12-Sep-2024::22:39:55 ===
          supervisor: {local,sasl_sup}
             started: [{pid,<0.63.0>},
                       {id,release_handler},
                       {mfargs,{release_handler,start_link,[]}},
                       {restart_type,permanent},
                       {shutdown,2000},
                       {child_type,worker}]

=PROGRESS REPORT==== 12-Sep-2024::22:39:55 ===
         application: sasl
          started_at: nonode@nohost

这里只列出了进度报告,而它们原本应该出现在shell里。进度报告是关于大事件的,比如启动和停止应用程序。但是error_logger:error_msg/1报告的错误没有保存在日志里,为此我们必须配置一个滚动日志。

5.滚动日志和shell

下面的配置既能提供shell输出,又能把写入shell的所有信息复制到一个滚动日志文件里

%%erlog2.config

[  {sasl, [
  {sasl_error_logger, false},
  %% 定义滚动日志的参数
  %% 日志文件目录
  {error_logger_mf_dir, "log"},
  %% 每个文件的大小 单位:Byte
  {error_logger_mf_maxbytes, 2048}, % 2 KB
  %% 日志文件的最大数量
  {error_logger_mf_maxfiles, 10}
]}].
PS C:\CodeProjects\ErlangProjects\erlang_learning\src\.cfg> erl -boot start_sasl -config erlog
Eshell V9.3  (abort with ^G)
1> error_logger:error_msg("There is an error").
ok

=ERROR REPORT==== 12-Sep-2024::22:59:34 ===
There is an error
2>

6.生成环境

在生产环境里,我们真正感兴趣的只有错误,而非进度或信息报告,所以只让错误记录器报
告错误。如果没有这个设置,系统也许就会被信息和进度报告所淹没

我们只需要再加一个错误类型的配置

%%erlog3.config

[  {sasl, [
  {sasl_error_logger, false},
  %% 定义滚动日志的参数
  %% 只记录错误error类型
  {errorlog_type, error},
  %% 日志文件目录
  {error_logger_mf_dir, "log1"},
  %% 每个文件的大小 单位:Byte
  {error_logger_mf_maxbytes, 2048}, % 2 KB
  %% 日志文件的最大数量
  {error_logger_mf_maxfiles, 10}
]}].

运行它会产生与之前例子类似的输出,区别在于错误日志里只会有错误报告。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值