2012-02-02 46 views
1

我目前正在嘗試設置otp日誌記錄功能,因爲文檔建議使用它。Erlang使用otp日誌記錄的問題

我有以下的啓動行:

erl -pa ebin edit deps/*/ebin -boot start_sasl \ 
      -detached \ 
      -sasl sasl_error_logger "{file, \"priv/log/app.log\"}" \ 
      -sasl errlog_type all \ 
      -sname $APP_NAME \ 
      -s $APP_NAME 

但是,當我在我的應用程序像error_logger:error_report("!!!!")error_logger:error_msg("!!!!")說,再沒有什麼是印在日誌文件中,我在做什麼錯?

回答

3

問題很簡單。 SASL只記錄PROGRESS,CRASH和SUPERVISOR報告(或者文件說明)。你正在發送一些它不記錄的錯誤報告。如果在啓用SASL的進程中創建某個崩潰,請說

proc_lib:spawn(fun() -> exit(argh) end). 

然後,該報告應該出現在您的日誌中。我認爲mf記錄器採取一切,但我可​​能是錯的。它還需要rb工具來讀取有問題的日誌文件。一個真正的應用程序的另一個好的選擇是使用由Basho技術的好人編寫的lager應用程序。它提供了更多類似syslog的接口,它也處理SASL錯誤日誌類型。另外,如果你嘗試記錄一個非常大的進程狀態 - 默認的SASL記錄器會使用它,它不會破壞你的服務器。