すもももももももものうち。「追跡」をするトレースログを無効化するには?プログラム動作の状況や結果を追跡する目的でロギングされたログを「トレースログ」と呼びます。Eclipseの統合開発環境などを用いた対話的なデバッグが利用できない場合などに、よくトレースログを活用します。通常利用時には出力しないようにすることがほとんどです。このため、FINE、FINER、FINESTレベルのいずれかを利用してロギングされることになります。現実的には、FINESTレベルを利用するのが無難なことでしょう。トレースログは一般的に大量に出力されます。この大量のトレースログの処理が実行性能を引き下げてしまうことがあります。このような状況を防ぐために、トレースログは定数を利用した条件分岐などを利用して完全に無効化してしまう場合もあります。定数を用いた無効化を利用すると、再コンパイルを実施しないとロギングの有効化・無効化を切り替えることができなくなりますが、性能低下を避けるために、どうしてもその対応が必要となる場合があります。定数を利用した条件分岐を用いたトレースログの無効化の例を以下に示します。ロガーのインスタンスを取得しました。");}ログレベルの使い分け実際のロギング・プログラミングでは、ログレベルの使い分けが難易度の高いものの1つになる場合が多いです。どのような場合にどのログレベルを利用するのかについて、注意が必要となってくるのです。あなたが何かのソフトウェア開発プロジェクトの一員であるのなら、そのプロジェクトで決められたログレベルの運用ルールに従う必要があります。全体的な統一感をもって運用される必要があるからです。一般的には、ソフトウェア開発が一段落した後、ソフトウェア運用の際に適用されるログレベルはINFO、WARNING、SEVEREレベルなどになると考えます。CONFIGレベルも含まれることがあるでしょう。オンライン処理とバッチ処理でログ出力指針が異なってくることもあります。架空のプロジェクトにおけるログレベル指針を参考までに示します。SEVERE致命的な状況やエラーについての情報。問題が発生しており、処理が続行不能な状況WARNING警告についての情報。問題が発生しているものの、処理は続行可能な状況INFO正常系の情報。重要なポイントを通過したCONFIG設定情報に関する情報FINEデバッグ情報。比較的重要だが運用時にロギングする必要のない情報FINER特定の処理についての開始および終了の情報。ログレベル指針の例ログとは難しいもので、大量にロギングすると嫌がられる一方で、必要な情報をロギングしないと非難されてしまいます。INFO、WARNING、SEVEREについては、必要十分なロギングを行う必要が出てきます。実際にログファイルに出力されたログを見て、初めてどのようにロギングすべきかについての判断が可能となる場合もあります。log4jにリダイレクトするためのオープンソース・ユーティリティを紹介させていただきます。Loggingを利用することが多いように思います。Loggingを利用すると、Javaソースコードにorg.apache.commons.logging.*のimport文が必要になってしまいます。API以外のものが入るのは好ましくない」というジレンマを感じている方は多いように考えます。Loggingのインターフェイスを利用せざるを得ないという状況があることも確かです。これを解決するために、blancoLogというオープンソースのユーティリティの開発に取り組んでいます。log4jクラスへとリダイレクトしてしまうというものです。Loggingの代わりに使ってしまおうとする取り組みです。log4jのロギングを利用してしまおうとするのです。取り組み始めたばかりのオープンソースですが、ご興味を感じられましたら、試用されることをお勧めしたく思います。Framework全体について詳しく知りたい読者は特集記事「Excelからプログラムを作る多言語対応オープンソース」をご参照ください。難易度が高いが、メリットも大きい「ログ」ログやログファイル、そしてログを扱うAPIを用いたプログラミングについて紹介してきましたが、どういうものなのかお分かりいただけましたでしょうか。冒頭で紹介したように、ログに関するプログラミングは初心者にとっては少し難易度の高いものとなります。これに加えて、ログファイルに関する常識や、さらにはログファイルに関する運用などの面を考慮する必要が出てくると、より一層難易度の高いものになってしまいます。その一方で、ロギングを行うことにより、各種情報をプログラムの外へと伝達できるメリットもかなり大きなものなのです。)ハンドル:いがぴょん1968年生まれ。ソリューショングループ所属。システム開発の技術支援などに従事する。仕事におけるJava言語とのかかわりは1998年から。Frameworkというオープンソースによるソースコード自動生成タイプの開発フレームワーク提供に取り組んでいる。趣味はヴァイオリン演奏。アマチュアオーケストラで演奏することもある。メールマガジンをご購読ください。申し込みページへITmediaはアイティメディア株式会社の登録商標です。