Отчеты журнала ошибок и отчетов SASL показывают двойной на оболочке - как увидеть только отформатированную версию - PullRequest
0 голосов
/ 08 апреля 2011

Когда я запускаю свое приложение с оболочкой, я дважды вижу все отчеты об ошибках_

Одна версия отформатирована как ~p, и есть хорошо отформатированная версия:

{info_report,<0.48.0>,
             {<0.425.0>,std_info,
              [{chan,ser_200},
               usb_port,send,
               {data,"6d e1 00 00 00 04 00 00 06 8f"}]}}

=INFO REPORT==== 8-Apr-2011::16:43:24 ===
    chan: ser_200
    usb_port
    send
    data: "6d e1 00 00 00 04 00 00 06 8f"

Как я могу избавиться от этого избыточного дисплея?

Чтобы уточнить, что я хотел бы видеть на экране только:

=INFO REPORT==== 8-Apr-2011::16:43:24 ===
    chan: ser_200
    usb_port
    send
    data: "6d e1 00 00 00 04 00 00 06 8f"

Я не спрашиваю озапись его в файл. Это уже сделано с помощью mf logger.

Что я хочу улучшить, так это отображение в реальном времени на экране.

Я запускаю Erlangвот так:

erl +W w -boot start_sasl -config myconfig ...

Файл конфигурации приложения выглядит так:

[{sasl, [
    {sasl_error_logger, tty},   
    {error_logger_mf_dir,"./log"},  
    {error_logger_mf_maxbytes,10485760}, % 10 MB
    {error_logger_mf_maxfiles, 10}]}].

1 Ответ

2 голосов
/ 08 апреля 2011

Только что выяснил:

Был пропущен пункт catch all в одном из моих собственных обработчиков ошибок, оставшихся с древних времен в другом проекте:

handle_event(Event, State) ->
    io:format("~p\n", [Event]),

Это вызывает ~p как вывод ... потому что я использую ~p.

Как только я удалил вызов io:format/2, двойная печать исчезла.

...