2016-05-25 11 views
0

Java開発では、時間/メモリ消費操作を記録する前にデバッグチェックを行いました。例えばERLANG LAGER DEBUGとLOG4Jデバッグ

:Erlangのラガーと

if(log.isDebugEnabled()){ 
    log.debug("This is time/memory consuming {}", bigString); 
} 

、私はそれをログに記録する前に、同じチェックを行う必要がありますか?

はいの場合、これを確認するにはどうすればよいですか?

答えて

1

lagerを使用すると、lagerの設定で希望のログレベルを変更できるため、コードのチェックを省略することができます。デバッグレベルがどのバックエンドのために有効になっていない場合、それだけで

example

{lager, [ 
    {log_root, "/var/log/hello"}, 
    {handlers, [ 
    {lager_console_backend, info}, 
    {lager_file_backend, [{file, "error.log"}, {level, error}]}, 
    {lager_file_backend, [{file, "console.log"}, {level, info}]} 
    {lager_file_backend, [{file, "debug.log"}, {level, debug}]} 
    ]} 
]}. 

を参照してくださいに削除されますので、デバッグログはdebug.log

+0

おかげに行きます。私はこれを知っている。 Javaの場合、メッセージが時間/メモリを消費していた場合は、ログに記録する前に確認する必要があります。私はラガーに同じことをしなければならないのだろうか? – user3644708

+1

lagerでは、ログが印刷されていないレベルにある場合、ロギングは呼び出されず、空の操作になります。 LagerはErlangのparse_transformを使用して、すべてのログ呼び出しを特定のコードに置き換えます。ただし、ログが呼び出される前、つまり同じ行にコールが実行された場合は、異なる場合があります。それを経験的にチェックするのがベストです。任意のコードを無効にする必要がある場合は、コンパイルマクロを 'd'オプションとしてコンパイルに渡します(シェルから' erlc'を呼び出すときに '-D')。 – Amiramix

+0

@Amiramixありがとうございます。見つけようとする – user3644708

関連する問題