JavaScriptロガーを拡張
id:ya_ken:20060719:1153320126にて紹介したJavaScriptのロガーですが、少しだけ拡張しました。追加したのは新規ウィンドウへのロギング機能。これで、開発時は別ウィンドウでロギングするNewWindowWritableを利用し、公開時はどこにもログを書かないNullWritableを利用する、ということが可能になるわけです。
サンプル:http://ya-lab.main.jp/prototype-js-cookbook/05_JavaScript-Logger/
そのためにアプリケーション開発時には以下のような感じの内容を含むJavaScriptファイルを用意しておくと、本番環境で割と簡単に切り替えが出来る。
function getLogger() { return new Logger(new NewWindowWritable()); // 本番環境では下記をコメントアウトし、上記一行をコメントアウトする。 // return new Logger(new NullWritable()); }
もちろん、もっと華麗な実装方法もある。たとえば、設定ファイルっぽく下記のような感じのファイルを利用して、環境によって書き換える方法もある。
// -- logger-config.js -- var take_a_log = true; // -- application-logger.js -- function getLogger() { if (take_a_log) { return new Logger(new NewWindowWritable()); } else { return new Logger(new NullWritable()); } }
あとはドメインによって自動的に判断したり、パスによって判断したりといったことも考えられるな。